【问题标题】:Kafka-python Producer performs Send, but no data arrives in KafkaKafka-python Producer执行Send,但Kafka没有数据到达
【发布时间】:2020-12-03 23:01:32
【问题描述】:

我正在尝试通过 python 作为远程生产者将数据发送到 Kafka 主题。我的脚本没有报告任何异常,但 Kafka 中没有显示任何内容。我能够使用消费者方法从代理(都在一个单独的主机上)获得响应。浏览我看到的论坛以确保并刷新写入缓存,但那里没有运气。脚本如下:

from kafka import KafkaProducer, KafkaConsumer
from json import dumps
producer = KafkaProducer(bootstrap_servers='192.168.1.100:9093', value_serializer=lambda x: dumps(x).encode('utf-8'))
producer.send('home-sensehat-temperature',{"timestamp": "2020-08-12 23:31:19.102347", "temperature": 127.6969})
producer.flush()
consumer=KafkaConsumer(bootstrap_servers='192.168.1.100:9093')
print(consumer.topics())

我从 consumer.topics() 得到的响应是: {'home-sensehat-temperature', 'home-camera-path', 'home-sensehat-湿度', 'home-sensehat-pressure'}
所以这意味着我可以与经纪人建立良好的联系。

我尝试挖掘 kafka 代理日志,但找不到任何东西。任何帮助将不胜感激!

【问题讨论】:

  • 我还应该补充一点,我可以在代理主机本身上通过 Python 写入相同的主题
  • 你确定你的客户端已经连接到kafka了吗,kafka客户端有缓存,即使连接失败,你也可以发布消息缓存。
  • 此页面与连接问题有关,stackoverflow.com/questions/27191347/…
  • 谢谢@Spikie。我的理由是,因为我从 consumer.topics() 得到了很好的响应,所以我与经纪人有很好的联系。我还应该做些什么来验证我是否有连接?
  • 我也遇到了同样的问题。通过使用 kafka 将生产者移动到同一主机并连接到 localhost 为我解决了

标签: python apache-kafka kafka-python


【解决方案1】:

知道了!远程生产者一切都很好,但我不得不在代理上添加一个配置参数。特别是每个代理使用的 config/server.properties 文件中的 Advertisementd.listeners 参数。详情在下面的帖子中:

Kafka : How to connect kafka-console-consumer to fetch remote broker topic content?

谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2016-09-18
    • 1970-01-01
    • 2019-06-13
    • 2019-04-23
    相关资源
    最近更新 更多