深入理解Kafka(五):Topic分区数和consumer消费者

如何确定分区数

Kafka中的消息数据是保存到各个Partition分区中的,Partition分区是Kafka并行化的基础,不同的Partition分区分布到各个Broker中,可以实现机器间的并行处理。同一Broker下的不同Partition分区分布到不同的磁盘驱动上,也可实现磁盘间的并行处理。所以,理论上Partition分区的个数决定了最大并行度。但是,分区数也不是越多越好。

如何确认消费者数

我们分析Kafka消费者的分区分配策略可以知道,Topic下的分区是按照分区分配策略分配给消费组下的每个消费者,如下:

  • range:每个消费者分配(某个订阅的Topic分区数 / 总消费者数),那么剩下的分区数(Topic下的分区数 % 总消费者数)分配给前n个消费者。
  • roundRobin:每个消费者分配(所有订阅的分区数 / 总消费者数),那么剩下的分区数(所有订阅的分区数 % 总消费者数)分配给前n个消费者。

那么分区数和消费者数的关系分如下几种情况:

  • 分区数 > 消费者数:每个消费者消费1个或者多个分区
  • 分区数 = 消费者数:每个消费者消费一个分区
  • 分区数 < 消费者数:部分消费者没有消费分区,剩下的消费者消费一个分区

假设分区数为N,那么消费者数为N能达到最大的吞吐量,当消费者数大于分区数N的时候,比N多的那部分消费者将无法消费任何分区,浪费系统资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值