Kafka-partition
- 目录
- 概述
- 需求:
- 设计思路
- 实现思路分析
- 1.Kafka-partition
- 2.消费者数量小于分区数量
- 3.
- 拓展实现
- 参考资料和推荐阅读
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录
概述
Kafka-partition
需求:
Kafka-partition
设计思路
实现思路分析
1.Kafka-partition
分区可以将topic的消息打散到多个分区分布式的保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。
因此分区实际上是调优Kafka并行度的最小单元。对于producer而言,它实际上是用多个线程并发地向不同分区所在的broker发起Socket连接同时给这些分区发送消息;而consumer,同一个消费组内的所有consumer线程都被指定topic的某一个分区进行消费。
分区是消息分布式存储,方便并行操作,提高吞吐量
2.消费者数量小于分区数量
只有一个消费者时,消费者1将收到4个分区的全部消息,容易造成消费者1扛不住崩溃
3.
当有两个消费者时,每个消费者将分别从两个分区接受消息。
当有四个消费者时,每个消费者都可以接受一个分区的消息
当有五个消费者时,会有闲置的消费者
Kafka中的rebalance称之为再均衡,是Kafka中确保consumer group下所有的consumer如何达成一致,分配订阅的topic的每个分区的机制。
1、Rebalance触发的时机有:
(1)消费者组中consumer的个数发生变化了。
例如有新的consumer加入到消费者组,或者是某个consumer停止了。
(2)订阅的topic个数发生变化
消费者可以订阅多个主题,假设当前的消费者组订阅了三个主题,但有一个主题突然被删除了,此时也需要发生再均衡。
(3)订阅的topic分区数发生变化
topic的分区减少或新增,此时也需要发生再均衡。
拓展实现
这里参考:github:简单实现上述流程:
入门级实现:
: 部分源码实现.
: 源码实现
参考资料和推荐阅读
1.https://blog.csdn.net/zmj199536/article/details/125938273
2.https://www.cnblogs.com/xxeleanor/p/15054198.html
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!~