搭建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
标签:容器,--,9092,KAFKA,集群,docker,kafka
From: https://www.cnblogs.com/aaalei/p/17530193.html