kafka 的分区为什么只能绑定一个消费组的一个消费者

假设 kafka的分区可以绑定多个消费者。现在一个分区p1,数据分布如下,有两个消费者c1, c2。

例图

如果c1 已经消费了1-10,那么该分区的消费index 需要移动到10的位置。当c2希望消费10-20时,index再继续进行移动。

此时

  1. 假设broker对index进行维护。但是consumer 是进行pull操作的,拉取操作一般来说都是由拉取方提供index,数据方根据index 返回数据。如果由数据方维护index,会增加获取index 的通信开销。
  2. 假设consumer端进行多人的index维护,那么就得引入中心的概念,大家都在中心去获得当前的index,这会增加复杂性。
  3. 在consumer端维护单人index,可以方便的pull数据。牺牲了分区的分布式消费。由于可以有多个分区,权衡之下是较为合理的方案。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Kafka的分区数是不是越多越好? 分区多的优点 kafka使用分区将topic的消息打散到多个分区分布保存在不同...
    tenlee阅读 69,264评论 9 26
  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,816评论 13 425
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,739评论 19 139
  • 消费者如何分配分区就是指某个topic,其N个分区和消费该topic的若干消费者群组下M个消费者的关系。如下图所示...
    阿飞的博客阅读 11,446评论 10 9
  • 你什么都好,只是你所有的好都未曾留于我 我就像一颗仙人掌,长时间浇灌一次就好,但请记得别让我枯萎
    惺惜衡晟阅读 949评论 0 0