kafka基礎介紹

2021-09-18 05:48:26 字數 1936 閱讀 5418

1.kafka

kafka是類jms訊息佇列,與jms不同的是,kafka可以有多個消費者consumer主動拉取資料。

2.topic

topic是邏輯上:乙個目標傳送目的地,物理上:乙個磁碟上的partition的目錄。

乙個topic可以對應多個partition;

乙個partition可以劃分多個segment; 乙個segment的預設值是1g;

乙個segment包括index 和 log 檔案。

注意點:

topic不僅可以設定partition,還可以設定replication number,並且在多個replication中選取leader。 該主從模式與mysql的主從不同,此模式下所有的讀寫操作均通過leader管理,而mysql的主從則是為了讀寫分離。在kafka中,讀寫操作都是leader; 在mysql中,leader負責寫,follower負責讀。

3.producer

producer負責資料生產到broker中,producer決定資料分發策略,預設使用key的雜湊值對分割槽數取模演算法,該演算法和hdfs中partition演算法相同。

4.broker

broker是當前伺服器上執行的kafka的例項,在kafka集群中每乙個broker對應乙個唯一的id,即brokerid。

broker不關心資料何時生產,何時消費,它只關心資料儲存。

5.consumergroup

consumergroup是資料消費組,該組可以設定多個,組與組之間消費的資料都是一樣的;

在同乙個組內可以有多個consumer,在同乙個組內的成員共同消費乙個topic資料,組內成員不能重複消費資料。

負載均衡策略

分組策略:資料如何分組

預設是 (key.hashcode)%numpartitions。

安全策略:訊息是否確認接收

ack機制,

0是不等待broker返回確認訊息,

1是等待topic中某個partition的leader儲存成功statement,

-1是等待topic中某個partition所有副本都儲存成功statement。

儲存策略:訊息如何儲存

在理論環境下,broker按照順序讀寫的機制,可以每秒儲存600m的資料。主要通過pagecache機制,盡可能的利用當前物理機器上的空閒記憶體來做快取。當前topic所屬的broker,必定有乙個該topic的partition,partition是乙個磁碟目錄,partition的目錄中有多個segment組合。

存放策略:partition與broker 關係

partition輪詢依次訪問broker,這樣負載均衡在多個broker上。

消費策略:partition與consumergroup關係

理想策略是乙個consumer對應乙個partition;

若consumer數量大於partition數量,則會出現空閒的consumer;

若consumer數量小於partition數量,則使用如下演算法:

假如topic, 具有如下partitions: p0,p1,p2,p3

加入group中,有如下consumer: c1,c2

首先根據partition索引號對partitions排序: p0,p1,p2,p3

根據consumer.id排序: c0,c1

計算倍數: m = [p0,p1,p2,p3].size / [c0,c1].size, 本例值m=2(向上取整)

然後依次分配partitions: c0 = [p0,p1],c1=[p2,p3], 即 ci = [p(i * m),p((i + 1) * m -1)]

有序策略:資訊消費全域性有序性

資料生產可以做producer集群,資料儲存可以做broker集群,資料消費可以做consumergroup;

倘若保證訊息消費的全域性有序,則保證資料生產有序,資料儲存有序,資料消費有序。

kafka入門介紹

背景 當今社會各種應用系統諸如商業 社交 搜尋 瀏覽等像資訊工廠一樣不斷的生產出各種資訊,在大資料時代,我們面臨如下幾個挑戰 如何收集這些巨大的資訊 如何分析它 如何及時做到如上兩點 以上幾個挑戰形成了乙個業務需求模型,即生產者生產 produce 各種資訊,消費者消費 consume 處理分析 這...

kafka簡單介紹

參考資料 kafka 是乙個訊息系統,原本開發自 linkedin,用作 linkedin 的活動流 activity stream 和運營資料處理管道 pipeline 的基礎 使用kafka的優勢 實現了解耦合 broker kafka 集群包含乙個或多個伺服器,這種伺服器被稱為 broker。...

kafka入門介紹

背景 當今社會各種應用系統諸如商業 社交 搜尋 瀏覽等像資訊工廠一樣不斷的生產出各種資訊,在大資料時代,我們面臨如下幾個挑戰 如何收集這些巨大的資訊 如何分析它 如何及時做到如上兩點 以上幾個挑戰形成了乙個業務需求模型,即生產者生產 produce 各種資訊,消費者消費 consume 處理分析 這...