我注意到 Kafka Producer 使用 tcp 协议。
有没有办法提前固定多个Kafka生产者的源端口? 或者至少,有什么方法可以跟踪 Kafka 生产者的源端口吗? 我需要跟踪kafka生产者和消费者的带宽。 并且需要根据这些端口设置流量控制(tc)规则。
生产者不打开入站套接字,因此没有“源端口”的绑定。
您必须提供的唯一网络信息是
bootstrap.servers
为了实现这一点,您可以使用 librdKafka 库中称为 socket_cb() 的东西 (我使用的是2.0.2版本)。 为了实现这个你需要设置 Rdkadka::Conf* globalConf = Rdkafka::Conf::create(Rdkafka::Conf::CONF_GLOBAL)
globalConf->set("socket_cb", static_castRdKafka::EventCb*(this), errstr);
现在重写socket_cb()函数
这应该可以解决上述问题。