一个优化让 Kafka 的 TCP 连接减少了好几万

本文探讨了一次针对Kafka Broker TCP连接过多问题的优化过程。通过分析元数据更新频率和TCP连接数量,发现过多连接并未对Broker造成显著压力。经过减少Partition数量的实验验证,TCP连接数显著下降,而CPU和内存使用未受影响,揭示了Kafka的NIO网络模型优势。总结指出,虽然在这种场景下TCP连接不影响性能,但仍需合理控制Partition数量以避免不必要的连接。
摘要由CSDN通过智能技术生成

最近同时发现 Kafka Broker 的 TCP 连接比较多,单台 broker 已经达到了10K+,认为太多的 TCP 连接会给 Broker 带来压力,要求平台开发进行解决。在进行简单的排查后发现有一类任务会启动很多 worker, 每个worker会启动一个 Kafka Prouder ,向某个topic 上报数据,基本情况如下:

  • worker 有 3000+

  • producer 发送总的 qps 300+

  • 单条消息大小  100K

  • topic 有 16 个 partition,3 replica,每个 leader partition 分布在不同的 broker 上

综合上面的参数,直观上认为这种情况确实会对 broker 产生压力,原因如下:

  • produer 会向 broker 更新元数据,由于 producer 的实例比较多,发送的请求量会比较大

  • Kafka producer 会和每个 partition 的 leader,建立 TCP 连接,通过简单的计算,可知会产生 16*3000 = 48000 个 TCP 连接, 与单台 broker 建立的连接在 3000+

但仔细思考一下,事情其实并不简单,会涉及到很多知识。

关于元数据更新

Kafka prouder 更新元数据的默认间隔是 5 分钟,对应的配置项如下,折算下来更新元数据的 qps 也就3000/(5*60) = 10,并不会产生太大影响。

.define(METADATA_MAX_AGE_C
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值