【问题标题】:Can we assign a source port for Kafka Producer?我们可以为 Kafka Producer 分配源端口吗?
【发布时间】:2020-09-28 16:22:16
【问题描述】:

我注意到 Kafka Producer 使用 tcp 协议。

有没有办法提前修复多个Kafka生产者的源端口? 或者至少,有什么方法可以跟踪 Kafka 生产者的源端口吗? 我需要跟踪 kafka 生产者和消费者的带宽。 并且需要根据这些端口设置流量控制(tc)规则。

【问题讨论】:

  • 我认为仅使用简单的配置是不可能的,尽管这是人们一直要求的功能。通常的建议是添加一个连接回调(docs.confluent.io/current/clients/librdkafka/…),然后在连接套接字上调用setsockopt()。虽然这在原则上应该可行,但我承认我没有尝试过。
  • 有什么方法可以跟踪Kafka生产者的源端口吗?我需要跟踪 kafka 生产者和消费者的带宽。
  • 使用netstat ?
  • 我的意思是,如果我有几十个生产者在运行,我可以跟踪哪个生产者正在使用特定端口及其带宽吗?我使用了 iftop,这表明生产者的连接正在消耗非常异构的带宽,并且存在差异,例如从 2Mbps 到 1Kbps。
  • 对不起,我不知道如何处理这种情况。在网络层面,所有的生产者看起来都一样。

标签: java apache-kafka kafka-producer-api


【解决方案1】:

生产者不打开入站套接字,因此没有绑定“源端口”。

您必须提供的唯一网络信息是bootstrap.servers

【讨论】:

  • 有什么方法可以跟踪Kafka生产者的源端口吗?我需要跟踪 kafka 生产者和消费者的带宽。
  • @OneCricketeer -- 这不是(我认为)入站套接字。这是关于在 outbound 套接字上设置源 IP 和端口。这是一项合法的操作,但 Kafka 客户端(据我所知)不会向用户公开。
  • 没错。设置出站套接字的套接字地址。
  • @Ahmad 如前所述,bootstrap.servers 是您将获得的唯一网络信息。如果您想检查服务器端的 TCP 流量,那么您可以为每个生产者添加一个客户端 ID,然后进行额外的数据包检查以查看谁发送了什么,否则 Kafka 生产者会公开 JMX 指标以查看正在发送的大量数据
猜你喜欢
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2020-04-10
  • 2019-09-07
  • 1970-01-01
相关资源
最近更新 更多