当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 如何在一台服务器上使用docker运行kafka集群

如何在一台服务器上使用docker运行kafka集群

2025年02月14日 云虚拟主机 我要评论
1.拉取镜像docker pull wurstmeister/kafkadocker pull wurstmeister/zookeeper2.创建集群之间通信的网络docker network cr

1.拉取镜像

docker pull wurstmeister/kafka

docker pull wurstmeister/zookeeper

2.创建集群之间通信的网络

docker network create kafka-cluster-net

docker network inspect kafka-cluster-net 

3.将zookeeper加入到网络中

docker network connect kafka-cluster-net zookeeper

4.启动kafka集群

​
docker run -d \
--name kafka-0 \
--network kafka-cluster-net \
-p 9092:9092 \
-e kafka_broker_id=0 \
-e kafka_zookeeper_connect=zookeeper:2181 \
-e kafka_advertised_listeners=plaintext://localhost:9092 \
-e kafka_listeners=plaintext://:9092 \
wurstmeister/kafka
​
  • 首先创建一个自定义网络,方便容器间通信:
  • 运行第一个 kafka 容器:
  • --name kafka-0:给容器命名,这里以 kafka-0 表示第一个节点,后续可类推更改数字来创建不同节点。
  • --network kafka-cluster-net:让容器接入刚才创建的自定义网络。
  • -p 9092:9092:映射端口,使得外部能访问容器内的 kafka 服务。
  • kafka_broker_id:指定 broker 的唯一 id,每个节点不能相同。
  • kafka_zookeeper_connect:指向刚才启动的 zookeeper 容器名称及端口,容器间通过名称可互相访问。
  • kafka_advertised_listeners:对外暴露的连接地址,这里使用 localhost,根据实际情况修改。
  • kafka_offsets_topic_replication_factor:副本因子,这里设置为 1,可按需调整。
  • 运行第二个 kafka 容器(类似地修改 broker id 等参数):
  • 按照上述方法可运行更多的 kafka 容器来构建更大的集群,只需修改相应的 id 和端口等参数。
docker run -d \
--name kafka-1 \
--network kafka-cluster-net \
-p 9093:9092 \
-e kafka_broker_id=1 \
-e kafka_zookeeper_connect=zookeeper:2181 \
-e kafka_advertised_listeners=plaintext://localhost:9093 \
-e kafka_listeners=plaintext://:9092 \
wurstmeister/kafka

5.检查是否运行

docker ps

docker network inspect kafka-cluster-net 

检查网络以及容器运行状态

6.编写集群启动脚本

start_kafka_cluster.sh :

#!/bin/bash
docker start zookeeper
sleep 4
docker start kafka-0 kafka-1 
echo "kafka cluster containers started successfully."

7.编写集群关闭脚本

stop_kafka_cluster.sh:

#!/bin/bash
docker stop kafka-0 kafka-1 zookeeper
echo "kafka cluster containers stopped successfully."

8.进入容器检查

docker exec -it kafka-0 /bin/bash

cd /opt/kafka/                      #切换到内部kafka目录

9.故障排查

如果在使用docker过程中遇到任何错误, 可以命令:

docker logs 容器id/容器名称

10、启动生产者

./kafka-console-producer.sh --broker-list localhost:9092 --topic [你的topic名称]

11.启动消费者

为了看到生产者和消费者之间的消息传递效果,这里需要另开一个终端,按照上面的方法进入容器对应目录,并执行以下命令:

./kafka-console-consumer.sh --bootstrap-server [你的ip地址]:9092 --topic [你的topic名称]

到此这篇关于在一台服务器上使用docker运行kafka集群的文章就介绍到这了,更多相关docker运行kafka集群内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com