当前位置:   article > 正文

如何在Docker中简单配置Kafka_修改docker容器内kafka配置

修改docker容器内kafka配置

如何在Docker中简单配置Kafka


  • 注意:切记修改命令行中的内网ip和外网ip

1.在 docker 中拉取 kafkazookeeper 镜像
[root@VM-24-5-centos ~]# docker pull wurstmeister/kafka
[root@VM-24-5-centos ~]# docker pull wurstmeister/zookeeper
  • 1
  • 2
2. 启动 zookeeper
[root@VM-24-5-centos ~]# docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
  • 1
3. 启动 kafka
  • 作用于虚拟机的内网
## KAFKA_ZOOKEEPER_CONNECT 需要修改成zookeeper所在容器IP(可以使用ifconfig进行查看),容器之间是可以通过IP访问的,但是不能填写成虚拟IP
[root@VM-24-5-centos ~]# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka:latest
  • 1
  • 2
  • 作用于外网的环境
[root@VM-24-5-centos ~]# docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=(服务器外网IP):2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://(服务器外网IP):9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -t wurstmeister/kafka:latest

# 2.然后再本机的hosts文件中中添加  服务器的外网ip和对应的服务器名字,例如:(服务器外网IP)   VM-24-5-centos

# 3.java代码中直接使用代码: 
# // 设置配置文件的方式
Properties properties = new Properties();
# // 设置链接的主服务器
# // 连接当前远程的服务器出现了url错误,需要进行修改,切记加上9092
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "VM-24-5-centos:9092");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 方案2:整合SpringBoot
[root@VM-24-5-centos ~]# 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:latest
  • 1
4. 查看 kafka 的容器ID
[root@VM-24-5-centos ~]# docker ps |grep kafka
  • 1
5. 查看 kafkazookeeper 是否启动成功
[root@VM-24-5-centos ~]# docker ps
  • 1
6. 进入 kafka 容器中
[root@VM-24-5-centos ~]# docker exec -it b632402293ba /bin/bash
  • 1
  • 查看相关的命令
# 查看topic的命令
bash-5.1# /opt/kafka/bin/kafka-topics.sh 

# 查看生产者端的命令
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh 

# 查看消费者端的命令
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
7. 创建 topic
bash-5.1# /opt/kafka/bin/kafka-topics.sh --zookeeper (服务器内网IP):2181 --create --replication-factor 1 --partitions 1 --topic mykafkadk
Created topic mykafkadk.  # 表示创建成功
  • 1
  • 2
8. 查看指定 topic 的详细描述信息
bash-5.1# /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic mykafkadk --describe
Topic: mykafkadk	TopicId: DrgX_OZ_TBikrvzxiTO-9Q	PartitionCount: 1	ReplicationFactor: 1	Configs: segment.bytes=1073741824
	Topic: mykafkadk	Partition: 0	Leader: 1	Replicas: 1	Isr: 1
  • 1
  • 2
  • 3
9. 查看创建的所有 topic
bash-5.1# /opt/kafka/bin/kafka-topics.sh --zookeeper 172.17.0.1:2181 --list
mykafkadk
  • 1
  • 2
10. 向指定的 topic 中进行发送消息
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic mykafkadk
>1
>2
  • 1
  • 2
  • 3
11. 消费者进行消费指定 topic 中的消息
  • 只会消费连接上之后生产者发送的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk
2
  • 1
  • 2
  • –from-beginning: 会消费所有的发送到broker中的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk --from-beginning
1
2
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/818822
推荐阅读
相关标签
  

闽ICP备14008679号