我正在开发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,似乎没有连接到代理的过程?如何对这些连接错误进行重新连接?如何检查连接状态?
我正在开发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,似乎没有连接到代理的过程?如何对这些连接错误进行重新连接?如何检查连接状态?
1条答案
按热度按时间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