我们正在尝试优化我们的python应用程序,它通过confluent python kafka客户端生成消息到kafka主题,使用confluent控制中心,我们可以检查特定的消息是否传递到kafka主题,所以现在的问题是,我们应该在producing之后使用poll()函数,因为交付回调现在被删除了,如果我们在1秒内产生100K消息,它是否会导致更好的吞吐量。
producer.produce( topic=topicName, value=msg, key=msg_key)
producer.poll(0) # Is poll now required
我们使用的是在内部使用librdkafka的confluent python api,如果中介成功地处理了产生的请求,那么成功响应将被排入传递报告队列,并将在轮询调用时传递给应用程序,因此如果没有轮询,这意味着传递队列将在一段时间后完全填满,并可能产生问题。
发布于 2020-11-16 16:06:21
可以,您仍然需要调用poll()才能触发内部投递报告回调。
但是您确实希望使用传递报告回调,否则您无法指示是否可以生成消息。至少为失败的投递添加日志消息。
https://stackoverflow.com/questions/64764616
复制相似问题