一、消息系统有两种模型(队列和发布订阅)。kafka使用消费者组统一了上述的两种模型。html
同一个消费者组内的消费者之间是队列模型。不一样的消费者组之间是订阅模型。算法
zookeeper用来存储kafka集群的元数据信息源码分析
在正常状况下,Kafka中的每一个Topic都会有不少个分区,每一个分区又会存在多个副本。在这些副本中,存在一个leader分区,而剩下的分区叫作 follower,全部对分区的读写操做都是对leader分区进行的。因此当咱们向Kafka写消息或者从Kafka读取消息的时候,必须先找到对应分区的Leader及其所在的Broker地址,这样才能够进行后续的操做。本文将要介绍的就是 Kafka 是如何找到 leader 分区的。.net
因为Producer和Consumer都只会与Leader角色的分区副本相连,因此kafka须要以集群的组织形式提供主题下的消息高可用。kafka支持主备复制,因此消息具有高可用和持久性。设计
生产者客户端也能够配置某种算法用来规划消息发往那个partiton。htm
kafka会从全部的broker中选取一个broker做为controller。blog
kafka源码分析:https://www.jianshu.com/p/aa274f8fe00fseo
kafka生产者:https://www.jianshu.com/p/4297ad291f1a队列
kafka如何寻找leader分区:https://blog.csdn.net/b6ecl1k7BS8O/article/details/80164679
kafka设计原理:http://www.javashuo.com/article/p-baepbuop-cb.html
kafka的配置:http://www.javashuo.com/article/p-opxgtpdv-bd.html
kafka消息系统:http://www.javashuo.com/article/p-zyhzdmxo-cy.html
kafka的原理和特性:https://yuanhsh.iteye.com/blog/2202880
kafka的元数据管理:https://blog.csdn.net/bingdianone/article/details/88555490#ZK_1
kafka知识点详解:http://www.javashuo.com/article/p-vtrjpsfv-cs.html