【问题标题】:cant read\write from kafka topic [duplicate]无法从kafka主题读取\写入[重复]
【发布时间】:2020-07-02 15:10:24
【问题描述】:

我在桌面上的容器上运行了 Kafka。 我可以使用名为“Kafka 工具”的工具很好地连接到它,例如,我可以在其中查看我的主题。

我在读取和写入 Kafka 主题时遇到问题。 让我烦恼的是它不会给我一条错误消息,它的行为就像主题上没有任何消息,但它确实有,我可以使用该工具看到,甚至手动添加了两条消息。

主题存在并且有两条消息(我使用此 UI 手动添加)

问题: 向主题发送消息的代码运行良好,但消息没有发送到 Kafka 从主题读取消息的代码不会读取任何内容。它就在那里,就像没有要阅读的消息一样。 另外,我可以使用相同的消费来列出主题(表示连接成功)

kafka 版本是 2.4。 知道问题可能是什么吗? 我试过 "bootstrap_servers=['localhost:9092', 'kafka-server:9092']" 但也没有用

谢谢

【问题讨论】:

    标签: python docker apache-kafka kafka-producer-api kafka-python


    【解决方案1】:
    1. KafkaProducer:需要在send之后执行flush
    producer.send('testTopic', b'Hello, World!')
    producer.flush()
    
    1. KafkaConsumer:指定bootstrap_serversauto_offset_reset
    consumer = KafkaConsumer('testTopic',
                             bootstrap_servers=['localhost:9092'],
                             auto_offset_reset='earliest')
    for message in consumer:
        print(message)
    

    【讨论】:

    • 嘿@oldwooki 我在消费者上指定了 bootstrap_servers,我试图刷新生产者,但这没有帮助。事实证明,我必须使用端口 29092,而不是 9092……知道为什么吗?我认为 9092 是默认值
    • @Diego 您是否尝试从其他容器访问 kafka?
    • 不,只是从我的本地桌面。但是 Kafka 在一个容器上运行,该容器同时映射了两个端口
    • @Diego 那么这是一个 docker 配置问题,而不是 python。 9092 是默认值...
    猜你喜欢
    • 2021-12-21
    • 2021-09-12
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    • 2018-01-12
    • 1970-01-01
    • 2020-06-25
    相关资源
    最近更新 更多