自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux下利用Docker快速部署配置Kafka服務(wù)

開(kāi)發(fā) Linux
本文的目的是使用Docker容器來(lái)部署Kafka, 這樣可以省略Kafka安裝配置的中間過(guò)程, 節(jié)省大量時(shí)間。

Kafka是由Apache軟件基金會(huì)開(kāi)發(fā)一個(gè)開(kāi)源流處理平臺(tái),使用Scala和Java編寫(xiě), 該項(xiàng)目的目標(biāo)是為處理實(shí)時(shí)數(shù)據(jù)提供一個(gè)統(tǒng)一、高吞吐、低延遲的平臺(tái)。其持久化層本質(zhì)上是一個(gè)按照分布式事務(wù)日志架構(gòu)的大規(guī)模發(fā)布/訂閱消息隊(duì)列。這種工作方式使它為企業(yè)級(jí)基礎(chǔ)設(shè)施來(lái)處理流失數(shù)據(jù)非常有價(jià)值。

本文的目的是使用Docker容器來(lái)部署Kafka, 這樣可以省略Kafka安裝配置的中間過(guò)程, 節(jié)省大量時(shí)間。文章中分別從幾個(gè)維度來(lái)闡述Kafka的部署過(guò)程, 包括:基礎(chǔ)環(huán)境要求、安裝zookeeper、容器內(nèi)的設(shè)置等, 最后給出了一個(gè)從生產(chǎn)者角度向消費(fèi)者發(fā)送消息, 消費(fèi)者成功接收到消息作為結(jié)尾, 最后給出了一個(gè)在全過(guò)程當(dāng)中遇到問(wèn)題排查的正確方法。

認(rèn)識(shí)Kafka

Kafka存儲(chǔ)的消息來(lái)自任務(wù)多被稱為"生產(chǎn)者"(Producer)的進(jìn)程。數(shù)據(jù)從而可以被分配到不同的"分區(qū)"(Partition)、不同的“Topic”下。在一個(gè)分區(qū)內(nèi), 消息被索引并連同時(shí)間戳存儲(chǔ)在一起。而其它被稱為"消費(fèi)者"(Consumer)的進(jìn)程可以從分區(qū)查詢消息。Kafka運(yùn)行在一個(gè)由一臺(tái)或多臺(tái)服務(wù)器組成的集群上, 并且分區(qū)可以跨集群節(jié)點(diǎn)分布。Kafka的架構(gòu)如下圖所示:

以下列出了Kafka技術(shù)相關(guān)的術(shù)語(yǔ):

  • Topic - 用來(lái)對(duì)消息進(jìn)行分類, 每個(gè)進(jìn)入到Kafka的信息都會(huì)被放到一個(gè)Topic下。
  • Broker - 用來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的主機(jī)服務(wù)器。
  • Partition - 每個(gè)Topic中的消息會(huì)被分為若干個(gè)Partition,以提高消息的處理效率
  • Producer - 消息的生產(chǎn)者
  • Consumer - 消息的消費(fèi)者

了解了以上概念之后,對(duì)于Kafka的部署已經(jīng)沒(méi)有什么障礙, 下面開(kāi)始正式的部署過(guò)程。

基礎(chǔ)環(huán)境準(zhǔn)備

大多數(shù)Linux發(fā)行版都支持安裝Kafka,這里我準(zhǔn)備了一臺(tái)ubuntu 22.04.3 LTS版本的虛擬機(jī)作為試驗(yàn)環(huán)境。

登錄到系統(tǒng)輸入:docker -v 命令, 如果出現(xiàn):

Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1

類似于這樣的提示信息,說(shuō)明Docker已安裝,如果沒(méi)有,請(qǐng)輸入以下命令安裝Docker:

$ sudo apt update
$ sudo apt install docker.io

安裝zookeeper

由于Kafka依賴Zookeeper實(shí)現(xiàn)高可用性和一致性,其為Kafka提供了關(guān)鍵的分布式協(xié)調(diào)服務(wù),因此部署Kafka必須先部署Zookeeper集群作為基礎(chǔ), 以下進(jìn)入部署Zookeeper的過(guò)程:

在命令行直接輸入以下命令,docker會(huì)自動(dòng)拉取對(duì)應(yīng)鏡像:

# docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper

拉取過(guò)程如圖:

安裝Kafka

Zookeeper安裝成功后, 接著安裝Kafka組件, 在命令行直接輸入以下命令,docker會(huì)自動(dòng)拉取對(duì)應(yīng)鏡像:

# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=[你的IP地址]:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://[你的IP地址]:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

注意, 我的服務(wù)器IP是192.168.201.206,所以上面的IP要根據(jù)自己的實(shí)際情況進(jìn)行變更,我變更后的命令如下:

# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.201.206:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.201.206:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

拉取過(guò)程如圖:

進(jìn)入容器

Kafka安裝完畢后,還要進(jìn)入到容器中啟動(dòng)生產(chǎn)者和消費(fèi)者,這樣可以驗(yàn)證kafka功能是否正常,順序執(zhí)行命令如下:

# docker ps -a #查看kafka鏡像的容器ID
# docker exec -it 容器ID /bin/sh #進(jìn)入到容器內(nèi)部
# cd /opt/kafka/bin # 切到容器內(nèi)部kafka執(zhí)行目錄下

執(zhí)行最后的結(jié)果如圖:

啟動(dòng)生產(chǎn)者

在容器里執(zhí)行以下命令啟動(dòng)生產(chǎn)者:

./kafka-console-producer.sh --broker-list localhost:9092 --topic [你的topic名稱]

我這里自己起了一個(gè)topic名稱,名字為test123, 如圖:

產(chǎn)生者腳本啟動(dòng)成功后,會(huì)有一個(gè)">"提示符。

啟動(dòng)消費(fèi)者

為了看到生產(chǎn)者和消費(fèi)者之間的消息傳遞效果,這里需要另開(kāi)一個(gè)終端,按照上面的方法進(jìn)入容器對(duì)應(yīng)目錄,并執(zhí)行以下命令:

./kafka-console-consumer.sh --bootstrap-server [你的IP地址]:9092 --topic [你的topic名稱]

注意,這里有兩個(gè)變量需要自己調(diào)整,一個(gè)是IP地址,另一個(gè)是上面建立的Topic名稱, 我這里填入信息后的完整命令如下:

./kafka-console-consumer.sh --bootstrap-server 192.168.201.206:9092 --topic test123

執(zhí)行過(guò)程如圖:

生產(chǎn)者與消費(fèi)者測(cè)試

切換到生產(chǎn)者窗口,連續(xù)輸入一些信息,如圖:

再切換回消費(fèi)者窗口,  正常的話已經(jīng)可以收到生產(chǎn)者發(fā)送的信息了,如圖:

1故障排查

如果在使用Docker過(guò)程中遇到任何錯(cuò)誤, 可以命令:

docker logs 容器ID

通過(guò)查看容器日志進(jìn)行故障排查,過(guò)程如圖:

總結(jié)

在部署Kafka的整個(gè)過(guò)程中, 遵循以下部署順序流程:

  • 首先檢查Docker安裝是否正常, 確保Docker安裝無(wú)任何異常。
  • 其次安裝Kafka的依賴服務(wù)Zookeeper, 只需要一句命令可實(shí)現(xiàn)自動(dòng)鏡像拉取。
  • 接著安裝Kafka組件,也是一句命令即可搞定, 自動(dòng)拉取對(duì)應(yīng)的鏡像。
  • 進(jìn)入到容器內(nèi)部, 分別啟動(dòng)生產(chǎn)者和消費(fèi)者腳本, 便可以開(kāi)始進(jìn)行發(fā)送消息測(cè)試了。
  • 在整個(gè)部署過(guò)程中,遇到任何錯(cuò)誤或問(wèn)題都可以通過(guò)Docker日志進(jìn)行問(wèn)題排查。
責(zé)任編輯:趙寧寧 來(lái)源: 二進(jìn)制空間安全
相關(guān)推薦

2010-09-02 14:09:06

LinuxDHCP服務(wù)器

2016-12-14 08:49:22

LinuxWeblogic部署

2024-01-04 07:39:53

LinuxCentOS 8Docker

2013-08-30 15:56:57

MySQLMariaDB

2023-09-26 07:34:24

Docker部署依賴包

2009-09-11 08:49:09

linuxNIS服務(wù)linux配置

2014-12-26 10:06:48

Docker容器代碼部署

2024-10-28 15:40:26

2021-09-16 07:52:18

FTP服務(wù)器Linux

2011-02-23 13:26:18

Linuxvsftp

2020-10-30 10:49:37

DockerGPULinux

2011-03-02 09:59:01

Ubuntuvsftpd

2024-03-26 00:00:01

2021-09-01 07:21:41

LinuxHadoop存儲(chǔ)

2009-03-30 14:32:15

LinuxNetware服務(wù)器

2011-01-07 09:25:35

LinuxDHCP服務(wù)器

2012-12-31 10:54:09

LinuxNFS

2010-10-28 13:45:02

NFS快速配置

2011-01-11 11:32:20

Linuxlogrotate配置

2011-02-23 15:50:04

Linuxvsftpd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)