看某明星偷稅不如看老司機談Kafka的Broker和叢集是什麼回事

大老二在不在發表於2018-10-10

一個獨立的伺服器被稱之為Broker。Broker接收來自生產者的訊息,為訊息設定偏移量,並提交訊息到磁碟儲存。Broker為消費者提供服務,對讀取分割槽的請求做出響應,返回已經提交到磁碟上的訊息。根據特點的硬體及其特性特徵,單個Broker可以輕鬆的處理數千個分割槽以及每秒百萬級的訊息量

而多個Broker組成一個叢集,每個叢集裡面都有一個Broker同時充當叢集控制器的角色(這個角色是自動從活躍人群眾選舉出來的)。叢集控制器負責管理叢集的工作,包括將分割槽分配給Broker和監控Broker。在叢集中,一個分割槽從屬於一個Broker,該Broker被稱之為分割槽的首領。一個分割槽可以分配給多個Broker,這個時候會傳送分割槽複製。這種複製機制為分割槽提供了訊息冗餘,如果一個Broker失效,其他的Broker可以接管領導權。不過,相關的消費者和生產者都要重新連線到新的首領。

看某明星偷稅不如看老司機談Kafka的Broker和叢集是什麼回事

 

在一定的期限內保留訊息是Kafka的一個重要特性。Kafka Broker預設的訊息保留策略是這樣的:要麼保留一段時間(比如7天),要麼保留到訊息達到一定大小的位元組數(比如1GB)。當訊息量達到這些上限時,舊訊息就會過期並被刪除,所以在任何時刻,可用訊息的總量都不會超過他們配置引數所指定的大小。主題可以配置自己的保留策略,可以將訊息保留到他們不再用為止。後續會一隻更新大家喜歡的話,歡迎大家關注和轉發。

歡迎工作一到五年的Java工程師朋友們加入Kafka架構開發: 798891710

群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

相關文章