docker搭建kafka

寫(xiě)在前面

在我們大量使用分布式數(shù)據(jù)庫(kù)、分布式計(jì)算集群的時(shí)候,是否會(huì)遇到這樣的一些問(wèn)題:想分析一下用戶行為,一遍我能設(shè)計(jì)出更好的廣告位,相對(duì)用戶的搜索關(guān)鍵字盡心統(tǒng)計(jì),分析出前衛(wèi)的流行趨勢(shì),有些數(shù)據(jù)存數(shù)據(jù)庫(kù)浪費(fèi),直接存硬盤(pán)操作效率又低。kafka在這樣的場(chǎng)景下就是個(gè)不錯(cuò)的選擇。

第一步 搭建zookeeper環(huán)境

在centos中,拉取zookeeper鏡像,以及創(chuàng)建zookeeper容器:

docker pull zookeeper
docker run -d -p 2181:2181 -v /mysoft/zookeeper/data/:/data/ --name=zookeeper  --privileged zookeeper

注:此文采用的單例,而非集群,如需集群 讀者請(qǐng)自行創(chuàng)建.

第二步 創(chuàng)建kafka環(huán)境

在centos中,創(chuàng)建kafka容器:

docker pull wurstmeister/kafka
docker run  -d --name kafka -p 9092:9092  --env KAFKA_ADVERTISED_HOST_NAME=localhost  -e KAFKA_ZOOKEEPER_CONNECT=192.168.9.219:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.9.219:9092  -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"  --net=host wurstmeister/kafka 

注:由于docker kafka版本不斷迭代,KAFKA_ADVERTISED_HOST_NAME 不再建議是用localhost/127.0.0.1,故需要使用KAFKA_ADVERTISED_HOST_NAME= ip地址

第三步 驗(yàn)證kafka是否正確安裝

進(jìn)入到kafka容器中 并創(chuàng)建topic 生產(chǎn)者,執(zhí)行如下命令:

docker exec -it kafka bash
cd /opt/kafka_2.11-2.0.0/bin/
./kafka-topics.sh --create --zookeeper 192.168.9.219:2181 --replication-factor 1 --partitions 8 --topic test
./kafka-console-producer.sh --broker-list localhost:9092 --topic test

執(zhí)行上訴命令后,另起一個(gè)標(biāo)簽頁(yè),執(zhí)行如下命令 創(chuàng)建kafka消費(fèi)者消費(fèi)消息:

docker exec -it kafka bash
cd /opt/kafka_2.11-2.0.0/bin/
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

執(zhí)行完上訴命令后,在生產(chǎn)者窗口中 輸入任意內(nèi)容回車(chē),即可在消費(fèi)者的窗口查看到消息

第四步 搭建kafka管理平臺(tái)

kafka-manager是目前最受歡迎的kafka集群管理工具,最早由雅虎開(kāi)源,用戶可以在Web界面執(zhí)行一些簡(jiǎn)單的集群管理操作。具體支持以下內(nèi)容:

  • 管理多個(gè)集群
  • 輕松檢查群集狀態(tài)(主題,消費(fèi)者,偏移,代理,副本分發(fā),分區(qū)分發(fā))
  • 運(yùn)行首選副本選舉
  • 使用選項(xiàng)生成分區(qū)分配以選擇要使用的代理
  • 運(yùn)行分區(qū)重新分配(基于生成的分配)
  • 使用可選主題配置創(chuàng)建主題(0.8.1.1具有與0.8.2+不同的配置)
  • 刪除主題(僅支持0.8.2+并記住在代理配??置中設(shè)置delete.topic.enable = true)
  • 主題列表現(xiàn)在指示標(biāo)記為刪除的主題(僅支持0.8.2+)
  • 批量生成多個(gè)主題的分區(qū)分配,并可選擇要使用的代理
  • 批量運(yùn)行重新分配多個(gè)主題的分區(qū)
  • 將分區(qū)添加到現(xiàn)有主題
  • 更新現(xiàn)有主題的配置

在centos中,執(zhí)行如下命令拉取鏡像,創(chuàng)建對(duì)應(yīng)容器,以及打開(kāi)防火墻:

docker pull sheepkiller/kafka-manager
docker run -it -d --rm  -p 9000:9000 -e ZK_HOSTS="192.168.9.219:2181" --net=host sheepkiller/kafka-manager
firewall-cmd --add-port=9000/tcp

創(chuàng)建成后,在瀏覽器中訪問(wèn) `http://192.168.9.219:9000

讀者通過(guò)配置 zookeeper集群 以及kafka版本,進(jìn)行操作kafka

本文的配置
Zookeeper Hosts:192.168.9.219:2181
Kafka Version: 0.8.2.2

如果讀者驗(yàn)證過(guò)第三步,可以發(fā)現(xiàn)在右上角的菜單consumer發(fā)現(xiàn)有一個(gè)消費(fèi)者。

附錄:

查看消息主題列表:

 ./kafka-topics.sh --list --zookeeper zookeeper:2181 test

查看指定topic信息:

./kafka-topics.sh --describe --zookeeper zookeeper:2181 --topic test

原文:https://blog.csdn.net/belonghuang157405/article/details/82149257

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容