1. 程式人生 > >RabbitMq與Kafka叢集設計比較

RabbitMq與Kafka叢集設計比較

1.RabbitMq叢集

2.Kafka基礎

2.1基礎概念

Producer:訊息生產者,負責釋出訊息到 Kafka broker
Consumer:訊息消費者,向 Kafka broker 讀取訊息
Broker:Kafka 叢集包含一個或多個伺服器,這種伺服器被稱為 broker。一個broker上可能有很多topic的partition。
Topic:每條釋出到 Kafka 叢集的訊息都有一個類別,這個類別被稱為 Topic。一個topic可以分為多個partition,每個partition是一個有序的佇列。partition中的每條訊息都會被分配一個有序的id(offset)。kafka只保證按一個partition中的順序將訊息發給consumer,不保證一個topic的整體(多個partition間)的順序。


Partition:分割槽,每個 Topic 包含一個或多個 Partition。

2.2架構圖


2.3 kafka設計:

1.消費者:客戶端從broker拉的策略,支援批量拉和壓縮,由消費者在zk記錄訊息offset

2.生產者:A 非同步傳送,支援累積資料量64k或者10毫秒;B 負載均衡,消費者傳送的訊息分發到不同的broker上

2.broker:把檔案系統作為儲存系統,順序寫入磁碟,zero-copy方式檔案傳輸

3.備份:如果topic設定了replication,那意味著每個Partition都會有2個備份,對外提供服務的只有leader,follwer只是備份leader的資料;leader和follwer之間通過副本來選出leader,如果follwer跟不上leader就會被提出副本,如果leader不在,就會在副本中選取一個做為leader,如果所有的備份都down了,則選擇最近down掉的一個備份作為leader


更多精彩內容請繼續關注我的部落格http://blog.csdn.NET/caicongyang