不积跬步,无以至千里;不积小流,无以成江海。

使用Docker快速搭建kafka集群

网站建设 康康 2458℃ 1评论

准备镜像

本示例起3个kafka实例 一个zookeeper实例

  • kafka1:端口 9092 broker_id 0
  • kafka2:端口 9093 broker_id 1
  • kafka3:端口 9094 broker_id 2
  • zookeeper: 端口 2181

docker pull wurstmeister/kafka

docker pull wurstmeister/zookeepe

环境搭建

启动zookeeper

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper 

启动一个kafka先做下测试

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

说明:192.168.1.138为我本机IP

进入kafka1容器内,测试单节点收发消息

docker exec -ti kafka1 /bin/bash

进入容器内部,到/opt/kafka下 bin目录下为所有的脚本,通过kafka-topics.sh来创建一个名为 receive_mysql_data1 的 topic:

$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper 192.168.1.138:2181 --replication-factor 1 --partitions 1 --topic receive_mysql_data1

说明:replication-factor=1 ,partitions=1

查看Topic信息:

$KAFKA_HOME/bin/kafka-topics.sh --zookeeper zookeeper:2181 --describe --topic receive_mysql_data1

发几个测试消息:

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list 192.168.1.138:9092 --topic receive_mysql_data1

helloWorld

Who am I?

bash-4.4#

说明:输入数据回车,ctrl+c结束

消费者接收消息:

$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.138:9092 --topic receive_mysql_data1 --from-beginning

创建另外2个kafka实例

启动kafka2:

docker run -d --name kafka2 \
-p 9093:9093 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.138:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.138:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka

登录到容器,并创建topic receive_mysql_data2 :

docker exec -ti kafka2 /bin/bash

$KAFKA_HOME//bin/kafka-topics.sh --create --zookeeper 192.168.1.138:2181 --replication-factor 2 --partitions 2 --topic receive_mysql_data2

启动kafka3:

docker run -d --name kafka3 \
-p 9094:9094 \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.1.138:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.138:9094 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka

登录到容器,并创建topic receive_mysql_data3:
docker exec -ti kafka3 /bin/bash
$KAFKA_HOME//bin/kafka-topics.sh --create --zookeeper 192.168.1.138:2181 --replication-factor 2 --partitions 2 --topic receive_mysql_data3

集群部署成功

搭建集群管理控制台

docker pull sheepkiller/kafka-manager

docker run -itd --name=kafka-manager -p 9000:9000 -e ZK_HOSTS="192.168.1.138:2181" sheepkiller/kafka-manager

说明:本地 http://localhost:9000 进入管理界面,选择Add Cluster新增集群,填入zookeeper:2181

转载请注明:左手代码右手诗 » 使用Docker快速搭建kafka集群

喜欢 (0)or分享 (0)
发表我的评论
取消评论

 

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 前排!
    kangkang2019-12-18 15:54 回复