我正在使用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中,似乎没有连接到代理的过程?对于这些连接错误,如何重新连接人员?如何检查连接状态?
最佳答案
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