kafka架构组件概念详解:Broker、Topic、Partition、Leader/Follower、Consumer Group、zookeeper
消息隊列mq的兩種模式
發布訂閱模式分為兩種:①隊列推送數據(消費者能力不平均);②消費者拉取消息(要維護一個長輪詢)。kafka屬于消費者主動拉取數據的模式。
kafka架構
Broker
kafka服務器。
Topic主題
不同消息的分類。將消費分類。topic包含多個partition,partition有leader和follower備份機制,leader掛掉follower會上升為leader。
Partition分區
分區是為了提高主題Topic的負載能力。消息會輪詢發送到同一Topic主題在不同Broker中的不同Partition分區中。
Leader副本
消費者一定會找leader進行通信。對分區中的消息進行副本備份。就是對數據進行冗余。同一主題的同一分區的leader和follower一定不在同一臺機器上。
Follower副本
當leader掛掉后,follower會提升為leader的角色。
Consumer Group消費者組
一個partition分區中的消息只能被某一個消費者組中的一個消費者消費。這樣設計的目的是為了提高消費者組的并發度。
當一個消費者組中的消費者個數與主題的分區數一致時才最合理,如果消費者個數過多就造成了性能浪費。
zookeeper
①zk的主要作用是幫助kafka集群存儲一些信息;
②幫助消費者存儲消費到的位置信息。
(在kafka0.9版本之前offset消費到的消息的偏移量是存儲在zk中,0.9版本及以后offset存在kafka本地的系統topic中,無論是存儲在哪都是為了記錄消費位置,以便集群宕掉后重啟能繼續原來的位置接著消費,zk雖然可以用來存儲數據,但是它并不是存儲數據的首選方案,如果存儲在zk中,消費者會頻繁地從zk中拉取消息,背離了zk的設計初衷)
消息有效期
kafka的消息數據存儲在磁盤中,默認有效期是7天,如果存儲在內存中不宜保期這么久。
總結
以上是生活随笔為你收集整理的kafka架构组件概念详解:Broker、Topic、Partition、Leader/Follower、Consumer Group、zookeeper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7安装svn1.9解决与sv
- 下一篇: kafka安装(版本kafka_2.11