kafka-docker部署


部署zk

docker pull zookeeper

docker run -d --name zookeeper02 -p 2181:2181 -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro zookeeper 

部署kafka

docker pull wurstmeister/kafka

docker run -d --name kafka02 -p 9092:9092 -p 9999:9999 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=192.168.18.223:2181 -e KAFKA_ADVERTISED_HOST_NAME=192.168.18.223 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.18.223:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e JMX_PORT=9999 -e KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.18.223 -Dcom.sun.management.jmxremote.rmi.port=9999" -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro wurstmeister/kafka:0.11.0.0

 

參數說明:
-e KAFKA_BROKER_ID=0  在kafka集群中,每個kafka都有一個BROKER_ID來區分自己

-e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeeper管理kafka的路徑172.16.0.13:2181/kafka

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092  把kafka的地址端口注冊給zookeeper,如果是遠程訪問要改成外網IP,類如Java程序訪問出現無法連接。

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的監聽端口

-e KAFKA_HEAP_OPTS="-Xmx512M -Xms256M" 控制啟動內存

-e JMX_PORT=9997 jvm監控端口 -v /etc/localtime:/etc/localtime:ro 容器時間同步虛擬機的時間

-v /etc/timezone:/etc/timezone:ro 時區同步

 

測試kafka

/opt/kafka/bin:

生產者

bash-4.3# ./kafka-topics.sh --create --zookeeper 192.168.10.11:2181 --replication-factor 1 --partitions 8 --topic test
Created topic "test".
bash-4.3# ./kafka-console-producer.sh --broker-list localhost:9092 --topic test

 

消費者

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

 

然后測試一下生產和消費,正常的話,生產這里發,消費者就會收到。

 

kafka-manager

docker run -d --name kfk-manager --restart always -p 9000:9000 -e ZK_HOSTS=192.168.21.166:2181 -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro kafkamanager/kafka-manager

--restart string                 Restart policy to apply when a container exits (default "no")

  

原來有一個manager,部署在docker,鏈接一個docker的zk,上面有一個kafka的信息,但我把這個kafka(docker)刪掉重新起一個容器時,kafka注冊的zk里/brokers/下面的ids,topics的信息都是對的,但manager里的信息是舊的,manager注冊的docker-zk也無法exec,重啟zk。信息就正常了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM