Kafka之服务搭建(docker集群)

 1. 安装zookeeper集群

 2. 准备3台虚拟机

192.168.10.104 #node-1

192.168.10.105 #node-2

192.168.10.106 #node-3

 3. 创建目录

mkdir -p /usr/docker/kafka-1/logs #node-1

mkdir -p /usr/docker/kafka-2/logs #node-2

mkdir -p /usr/docker/kafka-3/logs #node-3

 4. 创建容器

  • 注意,KAFKA_BROKER_ID不能重复
  • 第一个节点(192.168.10.104)

docker run -d --net host --restart unless-stopped -p 9092:9092 \ -e CLUSTER_NAME=KAFKA \ -e KAFKA_ADVERTISED_HOST_NAME=192.168.10.104 \ -e KAFKA_ADVERTISED_PORT=9092 \ -e KAFKA_ZOOKEEPER_CONNECT=192.168.10.101:2181,192.168.10.102:2181,192.168.10.103:2181 \ -e KAFKA_HOST_NAME=192.168.10.104 \ -e KAFKA_BROKER_ID=1 \ -e KAFKA_LISTENERS=PLAINTEXT://192.168.10.104:9092 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.10.104:9092 \ -e KAFKA_DELETE_TOPIC_ENABLE=true \ -v /usr/docker/kafka-1/logs:/kafka \ --name kafka-1 wurstmeister/kafka:2.12-2.2.2

  • 第二个节点(192.168.10.105)

docker run -d --net host --restart unless-stopped -p 9092:9092 \ -e CLUSTER_NAME=KAFKA \ -e KAFKA_ADVERTISED_HOST_NAME=192.168.10.105 \ -e KAFKA_ADVERTISED_PORT=9092 \ -e KAFKA_ZOOKEEPER_CONNECT=192.168.10.101:2181,192.168.10.102:2181,192.168.10.103:2181 \ -e KAFKA_HOST_NAME=192.168.10.105 \ -e KAFKA_BROKER_ID=2 \ -e KAFKA_LISTENERS=PLAINTEXT://192.168.10.105:9092 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.10.105:9092 \ -e KAFKA_DELETE_TOPIC_ENABLE=true \ -v /usr/docker/kafka-2/logs:/kafka \ --name kafka-2 wurstmeister/kafka:2.12-2.2.2

  • 第三个节点(192.168.10.106)

docker run -d --net host --restart unless-stopped -p 9092:9092 \ -e CLUSTER_NAME=KAFKA \ -e KAFKA_ADVERTISED_HOST_NAME=192.168.10.106 \ -e KAFKA_ADVERTISED_PORT=9092 \ -e KAFKA_ZOOKEEPER_CONNECT=192.168.10.101:2181,192.168.10.102:2181,192.168.10.103:2181 \ -e KAFKA_HOST_NAME=192.168.10.106 \ -e KAFKA_BROKER_ID=3 \ -e KAFKA_LISTENERS=PLAINTEXT://192.168.10.106:9092 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.10.106:9092 \ -e KAFKA_DELETE_TOPIC_ENABLE=true \ -v /usr/docker/kafka-3/logs:/kafka \ --name kafka-3 wurstmeister/kafka:2.12-2.2.2

 5. 测试集群(node-1上生产一条消息,由node-2消费)

  1. 在node-1生产一条消息
  • docker exec -it kafka-1 bash #进入容器
  • cd /opt/kafka_2.12-2.2.2/bin/
  • kafka-topics.sh --create --zookeeper 192.168.10.101:2181 --replication-factor 1 --partitions 1 --topic test1 #先创建主题
  • kafka-console-producer.sh --broker-list 192.168.10.104:9092 --topic test1 #启动生产者
  • {"token":"Bearer ITHEIMA","actime":"2022-11-17 22:11:07","uri":"/web/items/S1235433012779413504.html","ip":"192.168.10.102"} #消息

      2. 在node-2消费这条消息

  • docker exec -it kafka-2 bash #进入容器
  • cd /opt/kafka_2.12-2.2.2/bin/
  • kafka-console-consumer.sh --bootstrap-server 192.168.10.105:9092 --topic test1 --from-beginning #启动消费者

      3. 消费成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序那点事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值