python - 卡夫卡消费者不显示消息
问题描述
我试图了解 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 将使生产者同步。有没有办法避免使用刷新并仍然确保消息被消耗。谢谢
解决方案
您可以按照@OneCricteer 的建议填充批处理大小,也可以将 linger.ms 设置为 0。这样它就不会等待在发送前填充到批处理大小。