docker安装kafka集群
搭建 docker 基本环境#
搭建 docker 环境非本处详细讲解, 了解或查阅资料即可
拉取镜像(zookeeper 以及 kafka 的)#
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
启动启动 zookeeper 容器#
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
docker run
: 运行一个新的容器。-d
: 指定容器在后台以守护进程模式运行。--name zookeeper
: 为容器指定一个名称,即 "zookeeper"。-p 2181:2181
: 将容器的 2181 端口映射到宿主机的 2181 端口。格式为<宿主机端口>:<容器端口>
。-t
: 分配一个伪终端(pseudo-TTY)。wurstmeister/zookeeper
: 使用 wurstmeister/zookeeper 镜像创建容器。
启动启动 kafka 容器#
宿主机 ip 需要以实际为准, 不能使用 localhost 的原因为: docker 各个容器的网络是相互通的, 所以需要将 docker 内部的接口映射到宿主机上, 然后实现各个容器之间的相互访问
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=<宿主机ip>:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<宿主机ip>:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=<宿主机ip>:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<宿主机ip>:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka
docker run -d --name kafka2 -p 9094:9094 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=<宿主机ip>:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<宿主机ip>:9094 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 -t wurstmeister/kafka
docker run
: 运行一个新的容器。-d
: 指定容器在后台以守护进程模式运行。--name kafka
: 为容器指定一个名称,即 "kafka"。-p 9092:9092
: 将容器的 9092 端口映射到宿主机的 9092 端口。格式为<宿主机端口>:<容器端口>
。-e KAFKA_BROKER_ID=0
: 设置 Kafka Broker 的唯一标识符为 0。-e KAFKA_ZOOKEEPER_CONNECT=<宿主机ip>:2181
: 指定与 ZooKeeper 的连接地址,其中<宿主机ip>
需要替换为实际的宿主机 IP 地址。-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<宿主机ip>
: 设置 Kafka 的广告监听器地址,用于外部访问,其中<宿主机ip>
需要替换为实际的宿主机 IP 地址。-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
: 设置 Kafka 的监听器地址,允许从任意地址访问 Kafka,监听 9092 端口。-t
: 分配一个伪终端(pseudo-TTY)。wurstmeister/kafka
: 使用 wurstmeister/kafka 镜像创建容器。
创建和查看 topic ,ip 改为宿主机器的 IP 地址#
创建 Replication 为 2,Partition 为 2 的 topic(容器目录 opt/kafka_2.11-2.0.0/中执行)
bin/kafka-topics.sh --create --zookeeper <宿主机ip>:2181 --replication-factor 2 --partitions 2 --topic <主题名称>
查看 topic 的状态(容器目录 opt/kafka_2.11-2.0.0/中执行)Isr 代表存活的备份机器中存活的。
bin/kafka-topics.sh --describe --zookeeper <宿主机ip>:2181 --topic <主题名称>
查看所有的 topic 名字
bin/kafka-topics.sh --bootstrap-server <宿主机ip>:9092 --list
发送测试 192.168.0.89:9092 宿主机 ip test_topic 主题#
启动消息发送方(容器目录 opt/kafka_2.11-2.0.0/中执行)
./bin/kafka-console-producer.sh --broker-list 192.168.0.89:9092 --topic test_topic
启动消息接收方(容器目录 opt/kafka_2.11-2.0.0/中执行)
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.89:9092:9092 --topic test_topic --from-beginning
作者:ZhangBlog
出处:https://www.cnblogs.com/aaalei/p/17530193.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!