如何解决RdKafka::ERR__TIMED_OUT和RdKafka::ERR__MSG_TIMED_OUT在libr

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

本文关键字:TIMED OUT RdKafka ERR MSG libr 解决 何解决      更新时间:2023-10-16

我正在开发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.msmessage.send.max.retries被超过。

在介绍指南中有更多关于这方面的信息:https://github.com/edenhill/librdkafka/blob/master/INTRODUCTION.md