kafka學習筆記2

2021-08-28 08:07:58 字數 1367 閱讀 2922

1、kafka分布式的情況下如何保證訊息的順序性

kafka並不適用對資料時序性要求嚴格的場景

kafka的做法是提供訊息佇列,讓生產者單往佇列的末尾新增資料,讓多個消費者從佇列裡面依次讀取資料然後自行處理

【生產】kafka的分布式單位是partition。同乙個partition內的資料可以保證時序。不同partition之間無法保證訊息的順序性。可以設定producer生產message的key值,同乙個key會追加到同乙個partition上,故可保證同乙個producer的訊息的時序性

2、乙個consumer group可以消費多個topic。乙個topic可以被多個consumer group消費。

乙個message只能被同乙個consumer group中的consumer消費一次。

消費最優是consumer group中的partition數量和consumer group中的數量相同。

3、high level api和offset是由zookeeper維護。low level api和offset是由consumer自己維護

4、kafka的消費理念是at last once。新啟動的consumer group預設從partition的頭位置開始讀取資料。kafka consumer預設是處理完message再commit。

5、consumer blance的觸發條件是:(1)consumer的增加和刪除 (2)broker的增加或減少

6、kafka produce無需儲存offset狀態,offset保證自增就ok了。produce message時無需制定partition,kafka會把收到的message進行load balance,按照hash(message key)%partition數量的方式,將message均勻的分布在topic所有的partition

7、 partition replica中存在乙個leader和若干follower。produce會把資料傳送到leader,leader再將資料傳送到各個follower

8、producer在將message傳送到某個partition時,首先通過zookeeper找到該partition的leader,向leader傳送訊息。每個follower都從leader pull訊息,follower在收到訊息之後馬上傳送ack給leader。leader一旦收到isr中所有replica的ack後,該訊息就被認為commited了,leader將會向producer傳送ack確認

9、如果某個broker宕機或者落後太多,則會被移除isr。isr這種機制並非完全的同步機制(移除isr的broker則不會繼續同步),也並非單純的非同步複製(如果leader和follower資料差距巨大,切換leader時會造成資料丟失)

10、producer可設定是否等待leader的確認ack

學習筆記 Kafka

kafka kafka把資料往磁碟上寫,但是在磁碟上存它的讀寫速度比記憶體快,這個依賴於預讀和後寫功能,但是這個預讀和後寫必須是按照順序的方式,若沒有順序的方式優化的話,不存在什麼預讀和後寫。特點 訊息持久化 能落到磁碟 通過o 1 的磁碟資料結構提供資料的持久化 高吞吐量 分布式 擴充套件能力強 ...

Kafka學習筆記

1.1簡介 apache kafka 是分布式發布 訂閱訊息系統 訊息中介軟體 它最初由 linkedin 公司開發,之後成為 apache 專案的一部分。kafka 是一種快速 可擴充套件的 設計內在就是分布式的,分割槽的和可複製的提交日誌服務。apache kafka 與傳統訊息系統相比,有以下...

kafka學習筆記

1.1 kafka的特性 controller在zookeeper註冊watch zookeeper管理kakfabroker集群。所有的kafkabroker節點一起去zookeeper上註冊乙個臨時節點,只有乙個能成功,成功註冊的節點稱之為 kafkabrokercontroller,其餘的稱之...