當前位置:
首頁 > 最新 > docker kafka 集群搭建實戰

docker kafka 集群搭建實戰

在一台騰訊雲主機的docker環境里搭建3個broker的kafka集群,所有步驟都已測試通過~~ ,另外還有LEADER_NOT_AVAILABLE 異常解決方法。

#創建集群目錄

mkdir/opt/cluster/kafka

cd/opt/cluster/kafka

#清理臟數據【可跳過】

docker rm-f kafka-9093

docker rm-f kafka-9094

docker rm-f kafka-9095

docker ps-a

#下載docker kafka鏡像

docker searchkafka

docker pulldocker.io/wurstmeister/kafka

docker images

#kafka鏡像dockfile文件中查看KAFKA_HOME變數和啟動腳本文件start-kafka.sh

https://hub.docker.com/r/wurstmeister/kafka/~/dockerfile/

#kafka鏡像啟動腳本start-kafka.sh中 查看-e參數列表

https://github.com/wurstmeister/kafka-docker/blob/master/start-kafka.sh

#查看kafka容器config目錄結構【exit退出容器】

docker run-it wurstmeister/kafka /bin/bash

#查看容器名

docker ps-a

#從容器複製config目錄配置文件到宿主機

docker cpwizardly_pasteur:/opt/kafka/config config_tmpl

#修改配置,【id,埠,logdir,內存大小,zk集群】

sed-r -i "s/(broker.id)=(.*)/1=$/g" config_tmpl/server.properties

sed-r -i "s/(log.dirs)=(.*)/1=/var/logs/g" config_tmpl/server.properties

sed-r -i "s/(log.segment.bytes)=(.*)/1=209715200/g" config_tmpl/server.properties

sed-r -i "s/(zookeeper.connect)=(.*)/1=123.*.*.*:2181,123.*.*.*:2182,123.*.*.*:2183/g" config_tmpl/server.properties

cat>>config_tmpl/server.properties

#appender config

advertised.host.name=kafka$

delete.topic.enable=true

HERE

#編輯配置

vimconfig_tmpl/server.properties

------------------- 修改如下 ------------------

listeners=PLAINTEXT://123.*.*.*:$

advertised.listeners=PLAINTEXT://123.*.*.*:$

#生成conf和log目標,並生成配置信息

forportin`seq 9093 9095`;do

mkdir$

&&cp-r config_tmpl $/config

&& BID=$[$port-9092] PORT=$envsubst ./$/config/server.properties

&&mkdir-p ./$/logs;

done

#創建3個kafka容器

forportin`seq 9093 9095`;do

docker run-d --restart always -h kafka$ --name kafka-$ -e HOST_IP=123.*.*.*

-e KAFKA_ADVERTISED_HOST_NAME=kafka$

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka$:$

-e KAFKA_ADVERTISED_PORT=$

-e KAFKA_BROKER_ID=$[$port-9092]

-e KAFKA_LISTENERS=PLAINTEXT://kafka$:$

-e KAFKA_ZOOKEEPER_CONNECT=123.*.*.*:2181,123.*.*.*:2182,123.*.*.*:2183

-e KAFKA_LOG_DIRS=/var/logs

-e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

-v /opt/cluster/kafka/$/config:/opt/kafka/config

-v /opt/cluster/kafka/$/logs:/var/logs

-p $:$ -t wurstmeister/kafka ;

done

#首次創建容器運行,或者當kafka生產者和消費者出現LEADER_NOT_AVAILABLE 異常時,刪除zk topics和各broker的logs下所有文件。

#步驟一:停止所有broker容器

docker stopkafka-9093

docker stopkafka-9094

docker stopkafka-9095

#步驟二:刪除zk topics

docker run-it --rm zookeeper zkCli.sh -server 123.*.*.*:2181,123.*.*.*:2182,123.*.*.*:2183

rmr/brokers/topics

#步驟三:刪除各broker的logs下所有文件

rm-rf 909*/logs/*

#步驟四:啟動所有broker容器

docker startkafka-9093

docker startkafka-9094

docker startkafka-9095

========================================================

#創建主題

docker exec-it kafka-9093 /opt/kafka/bin/kafka-topics.sh --zookeeper 123.*.*.*:2181,123.*.*.*:2182,123.*.*.*:2183

--create --topic fhw7 --partitions 3 --replication-factor 1 ;

#創建消費者

docker exec-it kafka-9093 /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 123.*.*.*:9093,123.*.*.*:9094,123.*.*.*:9095

--topic fhw7 ;

#另打開新shell終端,創建生產者

docker exec-it kafka-9093 /opt/kafka/bin/kafka-console-producer.sh --broker-list 123.*.*.*:9093,123.*.*.*:9094,123.*.*.*:9095

--topic fhw7 ;

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

傢具電子商行業常見違法行為,花5分鐘看懂就可以少掉坑了!
「你還記得,當年大明湖畔的何書桓嗎?」

TAG:全球大搜羅 |