如何获取生产者(使用 librdkafka)发送队列中的项目数

How to get number of items on producer(using librdkafka) send queue

在使用 librdkafka 的生产者中,是否可以知道已生产但尚未发送的项目数量。我已经关闭 ack,只对从生产者那里发送消息感兴趣。如果发送队列中有一定数量的消息(即已生成但尚未发送的消息),我希望避免生成更多消息。

如果您在生产者配置文件中设置 statistics.interval.ms,它将开始在您注册的回调中发送内部指标。 您可以使用函数 rd_kafka_conf_set_stats_cb 设置回调。统计数据以 json 数据的形式在回调中接收。 json 数据 msg_cnt 中的一个字段告诉您正在查找的排队消息。 更多详细信息,请访问 https://github.com/edenhill/librdkafka/blob/master/STATISTICS.md