这个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来查看生成的消息吗?
答案 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等。