訊息中介軟體介紹及kafka關鍵詞解釋

2021-09-27 00:10:03 字數 2287 閱讀 2086

1)	認識製造商,可以直接取製造商的倉庫拿貨(點到點的方式);

2) 不認識製造商,只能去超市買(發布和訂閱的方式)

訊息會被儲存在佇列裡,乙個或多個消費者可以消耗佇列中的訊息,但是特定訊息只能由乙個消費者消費,一旦消費,訊息就從該佇列中消失。

訊息會被儲存到主題,乙個消費者可以訂閱乙個或多個主題並消費該主題的所有訊息;其中kafka就是「發布和訂閱」的一種訊息中介軟體。

場景:理論上,來說,製造商製造乙個商品,乙個使用者就應該購買這個商品,隨著生產技術的提高,製造商製造出來的商品越來越多,這使用者消費不了這麼多商品,則很多商品就會被浪費掉,避免這種情況的出現,製造商把生產出來的商品放在超市暫存,由超市代賣,使用者從超市購買商品,那麼在kafka角度來看整個資料流轉過程,其中3~7就是kafka需要做的事:

1) 製造商-------------------------------------生產者

2) 超市所在的位址及其管理---------------------zookeeper

3) 超市---------------------------------------kafka-broker

4) 商品所在的商品類目-------------------------topic

5) 商品所在的類目列/行------------------------partition

6) 商品---------------------------------------資料流

7) 商品及其詳細資訊---------------------------訊息(報文)

8) 使用者群(家庭)-----------------------------消費組

9) 具體使用者-----------------------------------消費者

通過上圖可見,kafka有2個核心功能:處理生產者的高併發量,儲存生產者的資料。

1) 乙個topic會被拆分成多個partition,partition數是可以設定的;

2) partition實際就是broker(物理儲存空間)的某個資料夾;

3) product生產資料並push到kafka時實際是直接與partition互動;

4) 資料實際是儲存在partition中(1. 隨機儲存,2. k的hash值計算儲存地點,3. 指定的partition進行儲存);

5) 按圖可知partition的儲存過程是標準的佇列模式,fifo(先進先出),所有新增的資料都是放在佇列尾部,並每個partition都設定乙個偏移量offset(核心問題:partition內部可以保證fifo,但是如何保證topic的資料有序性呢?);

6) 資料儲存有時間限制,一般設定為7天,也可以人工修改時間(具體見kafka命令),過時間限制的資料就會被丟掉。

1) 由於生產者與消費者都是直接與partition互動;

2) 為了防止partition宕機,引入了副本(replica)機制,原理上來說副本就是partition的備份(partition本身就是乙個副本,副本數也可以設定),各個副本分布在不同的broker;

3) 為了讀寫的正確性,生產者與消費者都是與leader副本進行互動,其他副本則為follower副本;

4) 如所有的leader副本都在某個broker上,那麼為了防止該broker宕機,所有副本都需要重選擇leader,且所有的資料互動需要切換到其他broker,這樣資料量太大,所以leader副本是分布在各broker上的。

leader副本:響應客戶端的讀寫請求;

follow副本:備份leader的資料,不進行讀寫操作。

假設n個broker

將第i個partition的第j個副本分配到第((i+j)mod n)個broker上。

一旦leader副本宕機,則要從其他副本中選取乙個作為leader副本,選取的副本必須與原leader副本資料一致或者資料差在一定的閾值內(為何會出現不一致,具體如何判斷不一致,會在kafka生產機制和副本同步機制中具體描述),kafka為了防止leader副本宕機再去找各個副本的狀態,還不如維護乙個list,一旦leader副本宕機就從list中獲取乙個副本當leader,這個list就是isr。

isr:leader副本和所有能夠與leader副本保持基本同步的follow副本,如果follow副本和leader副本資料同步速度過慢,該follow將會被t出isr副本。

訊息中介軟體 kafka入門

訊息中介軟體有 activemq,rabbitmq,rocketmq,kafka,一般在 rabbitmq 和 kafka 間進行選擇 activemq 在別處看的,說沒有經過大規模吞吐的測試,社群不活躍 rocketmq 社群有黃掉的風險,碰到問題容易找不到技術資料 kafka 社群活躍度很高 在...

kafka與rabbitmq訊息中介軟體

kafka與rabbitmq xmind 思維導圖 axure 原型設計 一 rabbitmq集群 1.1普通集群 rabbitmq 每個節點上有乙個broker,每個broker負責本機上佇列的維護,並且borker之間可以互相通訊。集群中有兩個佇列a和b,每個佇列都分為master queue和...

訊息中介軟體

1.訊息的優先順序 2.訊息排序 3.訊息過濾 4.訊息持久化 5.訊息重試 6.事務的支援 7.broker滿 生產者,佇列,消費者 訊息佇列的優點 1 解耦2 非同步訊息,系統響應 在jms中,有兩種訊息模型 點對點模式和發布訂閱模式。1.在點對點模式中 有三種角色 1 訊息佇列,傳送者,接受者...