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

assets/docker安装kafka集群/image-20240105102816402.png

启动消息接收方(容器目录 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

assets/docker安装kafka集群/image-20240105102843546.png

作者:ZhangBlog

出处:https://www.cnblogs.com/aaalei/p/17530193.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   张Blog  阅读(524)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示