【问题标题】:how to poll/listen to a Kafka topic continuously?如何连续轮询/收听 Kafka 主题?
【发布时间】:2022-10-13 02:57:44
【问题描述】:

我必须在 Kafka 上收听一个主题并使用发布在上面的消息。 我的一段代码工作正常,但有时会卡在 try 块中,因为 poll 返回空字典。

请提出一种更好的方式来投票主题。蒂亚!

consumer = KafkaConsumer(**consumer_configs)
    consumer.subscribe(topics=[topic_name])
    while True:
        try:
            records = consumer.poll(10000, 500)
            for message in records.values():
                for msg in message:
                    print(msg.value)

【问题讨论】:

    标签: python apache-kafka kafka-consumer-api kafka-python


    【解决方案1】:

    有时会卡在 try 块中,因为 poll 返回空字典

    如果您已经到达主题的结尾,这是预期的行为。 while 循环仍然需要通过轮询和等待新事件来让消费者阻塞。

    不过,您可以在循环中执行类似的操作

    records = consumer.poll(10000, 500)
    if records:
        for message in records.values():
            ....
    else:
      print('waiting for data...')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      相关资源
      最近更新 更多