1. 程式人生 > 其它 >kafka入門相關概念

kafka入門相關概念

一、釋出和訂閱系統

想象成公眾號,作者在公眾號上寫文章,讀者訂閱公眾號看文章。

二、假如不用訊息中介軟體,不用kafka

模擬一下,有6個J國的人,同時給6個G國的人投遞東西,J國的每個人都要對應6個G國的人,而G國的每個人又要收到6個J國的人投遞的東西。

那麼當物件多的時候,兩邊都會很忙,而且會存在效率低,排隊,甚至投遞錯的風險。

那麼訊息中介軟體的目的就是成立一箇中轉站,類似於外賣取餐櫃,外賣小哥把餐放到取餐櫃就可以走了,而點餐的人也不用第一時間下來取餐,而且外賣小哥和點餐者之間沒有任何聯絡,也不用擔心萬一某個外賣小哥今天休假了,那麼他對應的點餐者就沒辦法取餐。

三、相關概念

1、訊息

就是資料,類似於快遞,外賣。

2、生產者

就是向kafka傳送資料的程式,類似於快遞員,外賣小哥。

3、消費者

就是從kafka訂閱訊息,獲取資料的程式,類似於點餐者,購買者。

4、主題(Topic)

給不同的資料加上標籤,類似於不同的外賣不同的種類一樣,火鍋,冒菜,炒飯。。。。

這樣消費者也可以根據標籤獲取自己想要的資料。

5、分割槽(Partition)

主題下面還有分割槽,這樣可以將一個主題分佈在多個伺服器下面。

生產者如何確認將資料放入哪一個分割槽?

1、生產者可以指定分割槽:

比如:生產者指明瞭將資料放到主題1的分割槽1下。

2、生產者沒有指定分割槽:

又要引入兩個概念:

2.1、鍵:一個標記,每一個值,每一個數據都會對應一個標記。

2.2、分割槽器:一個演算法,可以理解為輸入一個鍵,通過計算返回告訴你應該去哪一個分割槽。

小結:那麼一條訊息將會包含以下資訊:

主題、分割槽、鍵、值(具體資料)

 6、偏移量(offset)

分割槽裡,各個訊息的位置,1,2,3,4這樣,也就是第幾個的意思。

一個分割槽裡,每個訊息的偏移量是唯一的。

消費者只能順序讀取。 

7、kafka伺服器(broker)

8、kafka叢集:就是多個broker

資料重複性,保證資料的安全。萬一其中一個broker宕機了,那麼另外一個broker可以提供資料。