当前位置:   article > 正文

基于docker搭建kafka_docker kafka 创建topic

docker kafka 创建topic

步骤1:拉取镜像

在docker上安装kafka需要先安装zookeeper,我们可以使用docker pull先把zookeeper和kafka的镜像拉取下来

  1. docker pull wurstmeister/zookeeper
  2. docker pull wurstmeister/kafka

镜像拉取到后可以根据实际使用修改tag,例如:

  1. docker tag wurstmeister/zookeeper:latest registry.test.com/library/zookeeper:latest
  2. docker tag wurstmeister/kafka:latest registry.test.com/library/kafka:latest

可以通过如下docker images |grep -E "zookeeper|kafka"查看修改tag后的镜像

docker images |grep -E "zookeeper|kafka"

步骤2:运行zookeeper

docker run -d --name zookeeper -p 2181:2181 -t registry.test.com/library/zookeeper

步骤3:运行kafka

  1. # 10.160.32.28为宿主机IP
  2. # KAFKA_ZOOKEEPER_CONNECT 需要修改成zookeeper所在容器IP,容器之间是可以通过IP访问的,但是不能填写成虚拟IP
  3. docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.4:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t registry.cmcc.com/library/kafka:latest

KAFKA_ZOOKEEPER_CONNECT对应的Zookeper所在容器IP

步骤4:创建topic

  1. # 查询kafka容器ID
  2. docker ps |grep kafka
  3. # 进入kafka容器
  4. docker exec -it 53cc0e000953 /bin/sh
  5. # 创建topic mykafkadk
  6. /opt/kafka/bin/kafka-topics.sh --zookeeper 10.160.32.28:2181 --create --replication-factor 1 --partitions 1 --topic mykafkadk

步骤5:查询topic列表

/opt/kafka/bin/kafka-topics.sh --zookeeper 172.17.0.4:2181 --list

步骤6:发送消息

/opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafkadk

步骤7:消费消息

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk --from-beginning

若是发送消息报错,打印一堆日志需要检查步骤3运行kafka时配置参数是否正确,保存在/opt/kafka/config/server.properties中,若是有问题可以进行修改,docker容器中不能使用vi或vim命令直接编辑,需要使用sed命令进行修改或是将文件拷贝到容器外,修改好后再拷贝进容器

  1. # 从容器中cp到容器外
  2. docker cp 容器ID:/opt/kafka/config/server.properties /root/tmp
  3. # 从容器外cp道容器中
  4. docker cp /root/tmp/server.properties 容器ID:/opt/kafka/config/server.properties

完成后检查容器中文件的属组和权限是否正确

容器中重启kafka的命令

/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

运行安装第二个kafka时需要修改如下参数:

1) name

2} 端口号

3)KAFKA_BROKER_ID

docker run -d --name kafka1 -p 9093:9093 -e KAFKA_BROKER_ID=2 -e KAFKA_ZOOKEEPER_CONNECT=10.160.32.28:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.160.32.28:9093 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -v /etc/localtime:/etc/localtime -t registry.cmcc.com/library/kafka:latest

创建两个kafka公用的topic:

/opt/kafka/bin/kafka-console-producer.sh --broker-list 10.160.32.28:9093 --topic kafkatesttopic1

发送消息:

/opt/kafka/bin/kafka-console-producer.sh --broker-list 10.160.32.28:9093 --topic kafkatesttopic1

消费消息:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 10.160.32.28:9093 --topic kafkatesttopic1 --from-beginning

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/757356
推荐阅读
相关标签
  

闽ICP备14008679号