如何在librdkafka中解决rdkafka::err\uu timed\u out和rdkafka::err\uu msg\u timed\u out?

jk9hmnmh  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(896)

我正在开发c++kafka客户端librdkafka。看看这个例子https://github.com/edenhill/librdkafka/blob/master/src-cpp/rdkafkacpp.h 以及https://github.com/edenhill/librdkafka/blob/master/examples/rdkafka_example.cpp,似乎没有连接到代理的过程?如何对这些连接错误进行重新连接?如何检查连接状态?

blpfk2vs

blpfk2vs1#

librdkafka从应用程序中抽象出所有代理连接,它将尝试始终保持与每个已知代理的连接(通过 metadata.broker.list 或者由第一个引导代理返回的代理列表)。
一旦出现连接错误,librdkafka将永远尝试再次连接。
如果没有一个代理可以连接到 ALL_BROKERS_DOWN 事件将被触发,但当前没有相应的事件用于代理何时恢复联机。不过,应用程序不需要担心,因为librdkafka负责后台的所有重新连接和消息重传,并且它会一直尝试获取生成的消息,直到其中一个 message.timeout.ms 或者 message.send.max.retries 超出。
介绍指南中提供了更多信息:https://github.com/edenhill/librdkafka/blob/master/introduction.md

相关问题