Apache Kafka主題 架構和分割槽

2021-09-12 23:58:26 字數 2010 閱讀 2015

什麼是卡夫卡主題?

kafka主題本質上是乙個命名的記錄流。kafka在日誌中儲存主題。但是,apache kafka中的主題日誌分為幾個分割槽。此外,kafka將這些日誌的分割槽分布在多個伺服器或磁碟上。換句話說,我們可以說kafka中的主題是類別,流名稱或提要。

卡夫卡主題

此外,我們可以說apache kafka中的主題是pub-sub樣式的訊息傳遞。此外, 在kafka主題中可以有零到多個稱為kafka消費者群體的訂戶 。基本上,kafka中的這些主題被分解為分割槽,以提高速度,可伸縮性和大小。

如何建立卡夫卡主題

首先,執行 kafka-topics.sh 並指定主題名稱,複製因子和其他屬性,以在kafka中建立主題:

/bin/kafka-topics.sh --create \

--zookeeper :\

--topic \

--partitions \

--replication -factor

現在,使用乙個分割槽和乙個副本,下面的示例建立乙個名為「test1」的主題:

斌/ kafka-topics.sh --create \

--zookeeper localhost:2181 \

--replication -factor 1 \

--partitions 1 \

進一步,執行list topic命令,檢視主題:

bin / kafka-topics.sh --list --zookeeper localhost:2181

test1

確保當應用程式嘗試生成,使用或獲取不存在的主題的元資料auto.create.topics.enable 時,該 屬性設定為true時會自動建立主題。

卡夫卡主題分割槽

此外,kafka將主題日誌分成幾個分割槽,如果金鑰存在且迴圈,通常通過記錄金鑰。當金鑰丟失時,記錄儲存在分割槽上(預設行為)。預設情況下,有助於確定kafka producer 將記錄傳送到哪個分割槽的 鍵是record key。

基本上,為了在生產者寫入的許多伺服器上擴充套件主題,kafka使用分割槽。此外,為了促進並行消費者,kafka使用分割槽。此外,在故障轉移方面,kafka可以將分割槽複製到多個kafka brokers。

kafka主題日誌分割槽的訂購和基數

好吧,我們可以說,只有在乙個分割槽中,kafka確實維護了乙個記錄順序,因為分割槽也是乙個有序的,不可變的記錄序列。並且,通過將分割槽用作結構化提交日誌,kafka會不斷附加到分割槽。在分割槽中,所有記錄都分配了乙個順序id號,我們進一步稱之為偏移量。該偏移量進一步標識分區內的每個記錄位置。

此外,為了擴充套件到適合單個伺服器的大小,topic分割槽允許kafka日誌。雖然主題可以跨越許多伺服器上託管的許多分割槽,但主題分割槽必須適合託管它的伺服器。此外,apache kafka中的主題分割槽是並行的乙個單元。這意味著在任何時候,分割槽只能由乙個使用者組中的乙個kafka使用者處理。基本上,kafka中的消費者只能在自己的程序或自己的執行緒中執行。儘管如此,如果消費者停止,kafka會在同乙個消費者群體中的剩餘消費者之間傳播分割槽。

kafka主題分割槽複製

出於容錯的目的,kafka可以跨可配置數量的kafka伺服器執行分割槽複製。基本上,每個分割槽中都有乙個領導伺服器和一定數量的跟隨伺服器。此外,對於分割槽,領導者是處理所有讀寫請求的人。

但是,如果領導者去世,追隨者會複製領導者並接管。此外,對於組內的並行消費者處理,kafka還使用分割槽。

複製:kafka分割槽領導者,追隨者和isr。

通過使用 zookeeper,kafka選擇乙個**的分割槽副本作為領導者。此外,我們可以說,對於分割槽,具有分割槽領導者的**處理所有記錄的讀寫。此外,對於追隨者(節點/分割槽對)的領導者分割槽,kafka複製了寫入。

同步的跟隨者就是我們所說的isr(同步複製品)。儘管如此, 如果分割槽領導失敗,kafka會選擇新的 isr作為新的領導者。

kafka架構:kafka複製 - 複製到分割槽0

卡夫卡主題

當分割槽的所有isr寫入其日誌時,該記錄被視為「已提交」。但是,我們只能讀取來自使用者的已提交記錄。

卡夫卡主題

《Apache Kafka》學習筆記

1.什麼是kafka kafka是乙個高通過率的分布式訊息系統 2.訊息佇列 message queue mq的模型 訊息佇列的簡單架構圖 3個核心概念 message queue 訊息佇列 訊息排隊,訊息就是資料。通過訊息模型可以完成乙個系統和另乙個系統的互動,系統的通訊也就是系統與系統的呼叫。訊...

Apache Kafka教程A系列 介紹

在大資料中,使用了大量的資料。關於資料,我們有兩個主要挑戰。第乙個挑戰是如何收集大量資料,第二個挑戰是分析收集的資料。為了克服這些挑戰,您必須使用訊息傳遞系統。卡夫卡專為分布式高吞吐量系統而設計。卡夫卡傾向於非常好地取代傳統的資訊 者。與其他訊息系統相比,kafka具有更好的吞吐量,內建分割槽,複製...

Apache Kafka系列之Kafka介紹

kafka是乙個分布式的 分割槽的 多複本的日誌提交服務。它通過一種獨一無二的設計提供了乙個訊息系統的功能。所有的這些意味著什麼?1 kafka維護按類區分的訊息,稱為主題 topic 2 生產者 producer 向kafka的主題發布訊息 3 消費者 consumer 向主題註冊,並且接收發布到...