超详细Kafka架构原理图(观止)

 1.partition中的每个message只能被组(Consumer group )中的一个consumer(consumer 线程)消费,如果一个message可以被多个consumer(consumer 线程)消费的话,那么这些consumer必须在不同的组。
2.每个消息分区 只能被同组的一个消费者进行消费。
同一个消费组里的不同consumer可以消费同一个topic里的不同partition
3.多个consumer的消费都必须是顺序读取partition里面的message,新启动的consumer默认从partition队列最头端最新的地方开始阻塞的读message。

注:图中边框加粗为各partition的leader 

(1) broker的controller控制器节点  , 用来管理 leader副本和flowwer副本

(2)所有的读写都在leader副本上,leader副本可以在任何broker上(即leader不一定非得在controller上),follower副本也可以在任何broker上

超详细Kafka架构原理图(观止)_第1张图片

 建议对照上图,顺着一根根箭头线捋顺思维,kafka原理你就搞懂了,不需要再查阅其他资料了。

上图也是博主在结合自身经验和大量权威资料情况下,自己一点点画出来的,不想好东西被埋没,故分享出来。

 原版图:超详细Kafka架构图-Java文档类资源-CSDN下载

 

参考:
1.kafka 实现原理分析,包括:名词解释,与zookeeper关系、controller选举、leader选举、消息日志文件,消息查询定位
https://blog.csdn.net/u013378306/article/details/106760236

2.史上最详细Kafka原理总结https://www.cnblogs.com/dreamroute/p/13092117.html

3.kafka架构分析与原理介绍(超详细,建议收藏!)https://www.modb.pro/db/152199

你可能感兴趣的:(kafka)