【ZooKeeper】緩存
服務註冊、服務發現、客戶端負載均衡、Offset偏移量分佈式存儲。架構
kafka使用zookeeper來實現動態的集羣擴展,不須要更改客戶端(producer和consumer)的配置。負載均衡
broker會在zookeeper註冊並保持相關的元數據(topic,partition信息等)更新。分佈式
Broker和Consumer都在ZooKeeper中註冊,ZooKeeper保存它們的元數據。kafka
而客戶端會在zookeeper上註冊相關的watcher。一旦zookeeper發生變化,客戶端能及時感知並做出相應調整。有Broker和Consumer發生變化時,其餘Broker和Consumer都會獲得通知。這樣就保證了添加或去除broker時,各broker間仍能自動實現負載均衡。it
kafka是顯式分佈式架構,producer、broker(Kafka)和consumer均可以有多個。Kafka的做用相似於緩存,即活躍的數據和離線處理系統之間的緩存。幾個基本概念:io
(1)message(消息)是通訊的基本單位,每一個producer能夠向一個topic(主題)發佈一些消息。若是consumer訂閱了這個主題,那麼新發布的消息就會廣播給這些consumer。class
(2)Kafka是顯式分佈式的,多個producer、consumer和broker能夠運行在一個大的集羣上,做爲一個邏輯總體對外提供服務。對於consumer,多個consumer能夠組成一個group,這個message只能傳輸給某個group中的某一個consumer.集羣