大佬教程收集整理的这篇文章主要介绍了主机上的 Kafka 消费者没有访问在 docker 中运行的 Kafka Producer 的消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在主机上写了这个消费者代码
from kafka import KafkaConsumer
KAFKA_HOSTS = 'divolte-kafka:9092'
KAFKA_VERSION = (0,11,5)
topic = "csptest"
consumer = KafkaConsumer(topic,bootstrap_servers=KAFKA_HOSTS,API_version=KAFKA_VERSION)
for msg in consumer:
print(msg)
用这个配置在docker中安装了Kafka
version: "3.3"
services:
# Kafka/Zookeeper container
divolte-kafka:
image: krisgeus/docker-kafka
container_name: divolte-kafka
environment:
ADVERTISED_HOST: divolte-kafka
KAFKA_ADVERTISED_host_name: 192.168.65.0
LOG_RETENTION_HOURS: 1
auto_create_topICS: "false"
KAFKA_create_topICS: divolte:4:1
ADVERTISED_ListENERS: OUTSIDE://divolte-kafka:9092,INTERNAL://localhost:9093
ListENERS: OUTSIDE://0.0.0.0:9092,INTERNAL://0.0.0.0:9093
Security_PROTOCol_MAP: OUTSIDE:PLAIntexT,INTERNAL:PLAIntexT
INTER_broKER: INTERNAL
ports:
- 9092:9092 # kafka broker
expose:
- "9092"
networks:
- divolte.io
当我尝试按如下方式运行生产者和消费者时,它可以工作。但是,当我启动生产者并访问主机中用 python 编写的消费者代码中的主题“csptest”时,我没有收到任何消息(没有打印任何内容)。感谢您帮助我。
./kafka-topics.sh --create --zookeeper localhost:2181 --Replication-factor 1 --partitions 2 --topic csptest
# producer
./kafka-console-producer.sh --broker-List localhost:9092 --topic csptest
> dd
> hi
> jhj
# consumer
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic csptest --group topic_group
> dd
> hi
> jhj
当您在容器中时,您的 sHell 脚本可以工作,但这不会帮助您测试在 Docker 之外运行的代码
你似乎把内部和外部的听众翻转了
以上是大佬教程为你收集整理的主机上的 Kafka 消费者没有访问在 docker 中运行的 Kafka Producer 的消息全部内容,希望文章能够帮你解决主机上的 Kafka 消费者没有访问在 docker 中运行的 Kafka Producer 的消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。