kafka分区原理图

一个Topic的多个分区,被分布在kafka集群中的多个server上。每一个分区都有一个server为"leader";leader负责全部的读写操作,假设leader失效,那么将会有其它follower来接管(成为新的leader);follower仅仅是单调的和leader 跟进,同步消息就可以。由此可见作为leader的server承载了所有的请求压力,因此从集群的总体考虑,有多少个partitions就意味着有多 少个"leader",kafka会将"leader"均衡的分散在每一个实例上,来确保总体的性能稳定。

详细流程:
1. Producer依据指定的partition方法,将消息公布到指定topic的partition里面
2. kafka集群接收到Producer发过来的消息后,将其持久化到硬盘

3.Consumer从kafka集群pull数据,并控制获取消息的offset


原文地址:https://www.cnblogs.com/lcchuguo/p/5386038.html