我正在使用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,似乎没有连接到代理的过程?如何为这些连接错误重新连接人员?如何检查连接状态?
答案 0 :(得分:1)
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