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

最近同时发现 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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值