如何在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
2. 启动 zookeeper
[root@VM-24-5-centos ~]# docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
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
  • 作用于外网的环境
[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");
  • 方案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
4. 查看 kafka 的容器ID
[root@VM-24-5-centos ~]# docker ps |grep kafka
5. 查看 kafkazookeeper 是否启动成功
[root@VM-24-5-centos ~]# docker ps
6. 进入 kafka 容器中
[root@VM-24-5-centos ~]# docker exec -it b632402293ba /bin/bash
  • 查看相关的命令
# 查看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
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.  # 表示创建成功
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
9. 查看创建的所有 topic
bash-5.1# /opt/kafka/bin/kafka-topics.sh --zookeeper 172.17.0.1:2181 --list
mykafkadk
10. 向指定的 topic 中进行发送消息
bash-5.1# /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic mykafkadk
>1
>2
11. 消费者进行消费指定 topic 中的消息
  • 只会消费连接上之后生产者发送的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk
2
  • –from-beginning: 会消费所有的发送到broker中的消息
bash-5.1# /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafkadk --from-beginning
1
2
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值