如何在librdkafka中使用rd_kafka_poll_set_consumer?

时间:2016-09-30 20:53:02

标签: apache-kafka

这个api-rd_kafka_poll_set_consumer()的目的是什么? 在rdkafka.h文件中,它表示一旦你将rd_kafka_poll队列(rk-> rep)重定向到rd_kafka_consumer_poll的队列(rkcg-> rkcg_q),你就不应该在此之后调用rd_kafka_poll。

有人可以详细说明哪个队列发生了什么?生产者应该调用rd_kafka_consumer_poll来查看生成的消息吗?

1 个答案:

答案 0 :(得分:2)

rd_kafka_poll_set_consumer()rd_kafka_poll()通常提供的标准事件(例如error_cb,stats_cb等)转发给rd_kafka_consumer_poll()投放的消费者队列。

这简化了应用程序轮询循环,因为它只需一次调用rd_kafka_consumer_poll()就可以提供标准回调以及接收消息,而不必调用rd_kafka_poll()

顾名思义,这个事件队列重新路由只是消费者感兴趣的,生产者应用程序仍然应该调用rd_kafka_poll()来服务dr_cb等。