一、消息系統有兩種模型(隊列和發佈訂閱)。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