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

浙公網安備 33010602011771號