如何解决 librdkafka 中的 RdKafka::ERR__TIMED_OUT 和 RdKafka::ERR__MSG_TIMED_OUT?

How to address RdKafka::ERR__TIMED_OUT and RdKafka::ERR__MSG_TIMED_OUT in librdkafka?

我正在开发 C++ kafka 客户端 librdkafka。查看示例https://github.com/edenhill/librdkafka/blob/master/src-cpp/rdkafkacpp.h and https://github.com/edenhill/librdkafka/blob/master/examples/rdkafka_example.cpp,似乎没有连接到代理的过程?如何为这些连接错误做一些重新连接工作人员?如何查看连接状态?

librdkafka 从应用程序中抽象出所有代理连接,它将尝试始终保持与每个已知代理的连接(通过 metadata.broker.list 学习或从第一个 bootstrap 代理返回的代理列表).

一旦出现连接错误,librdkafka 将永远尝试再次连接。

如果 none 的经纪人可以连接到 ALL_BROKERS_DOWN 事件将被触发,但目前没有关于经纪人何时重新上线的相应事件。 应用程序不需要担心,因为 librdkafka 会在后台处理所有重新连接和消息重新传输,并且它将继续尝试生成消息,直到超过 message.timeout.msmessage.send.max.retries

介绍指南中有更多相关信息: https://github.com/edenhill/librdkafka/blob/master/INTRODUCTION.md