首页 > 解决方案 > 卡夫卡消费者不显示消息

问题描述

我试图了解 Kafka 制作人是如何工作的。下面是我编写的用于发送消息的 python 生产者代码。我首先启动了 Kafka 控制台消费者,然后运行 ​​python 代码

from confluent_kafka import Producer
from Product import Product
from faker import Faker



if __name__ == '__main__':


    config = {
        "bootstrap.servers":"localhost:9092"
    }
    producer = Producer(config)
    fake = Faker()
    product = Product(fake.name())
    print(product.serial())
    producer.produce(topic="first_topic",value=product.serial())

我面临的问题是,如果我在调用 generate 后调用 flush 方法,则消息会出现在控制台使用者上,但是如果没有刷新,则消息不会出现在控制台使用者中。根据 Kafka 文档,flush 将使生产者同步。有没有办法避免使用刷新并仍然确保消息被消耗。谢谢

标签: pythonapache-kafka

解决方案


您可以按照@OneCricteer 的建议填充批处理大小,也可以将 linger.ms 设置为 0。这样它就不会等待在发送前填充到批处理大小。


推荐阅读