kafka核心原理總結

2021-08-05 20:36:34 字數 1143 閱讀 3347

新霸哥發現在新的技術發展時代,訊息中介軟體也越來越受重視,很多的企業在招聘的過程中著重強調能夠熟練使用訊息中介軟體,所有做為乙個軟體開發愛好者,新霸哥在此提醒廣大的軟體開發朋友有時間多學習。

kafka已經被很多的中小公司使用,訊息傳送接受,有用過的朋友可能就很清楚了,kafka是乙個支援分割槽的、分布式、多副本的,是乙個基於zookeeper協調的分布式訊息系統,我們看中的就是其中的乙個最大的特性就是可以實時的處理大量資料以滿足各種需求場景。

kafka核心特性

高效性設計是其優於其他訊息中介軟體的乙個主要特性,還有乙個重要特性就是訊息可靠性,能夠對訊息集合壓縮,還有備份機制。能夠支援上千個客戶端同時讀寫,kafka集群支援熱擴充套件。

kafka核心元件

(1)replication(副本)、partition(分割槽)

乙個topic能有非常多個副本,如果伺服器配置足夠好,可以配很多個,副本的個數決定了有多少個broker存放寫入的資料;簡單的來說副本是以partition為單位的,

存放副本也可以這樣簡單的理解,備份若干個partition、但是只能有乙個partition被選為leader用於讀寫。在這裡新霸哥提醒剛入門的朋友partition(分割槽)

數量設定最好大於consumer數量,其實,這樣設計的思想就是保證每個消費者都有乙個partition。

(2)producer(生產者)

kafka中的producer能直接傳送訊息到leader的 partition,可以看出producer能決定將訊息推送到哪些partition。

也能使用批處理(batch)推送訊息,提高效率。在這裡新霸哥給大家乙個重要的提示那就是這裡有乙個重要的引數acks(0、-1、1)

(3)consumer(消費者)

kafka中的同乙個group的consumer不可以同時消費同乙個partition,對於同乙個group的consumer,

kafka就可以認為是乙個佇列訊息服務,各個consumer均衡的消費相應partition中的資料,有些時候會遇到當消費者數大於分割槽數時,

一般會出現leader consumer和follower consumer,leader consumer處理所有的讀寫請求,

特殊情況下leader consumer掛掉時,follower consumer會成為新的leader consumer。

kafka核心原理總結

新霸哥發現在新的技術發展時代,訊息中介軟體也越來越受重視,很多的企業在招聘的過程中著重強調能夠熟練使用訊息中介軟體,所有做為乙個軟體開發愛好者,新霸哥在此提醒廣大的軟體開發朋友有時間多學習。kafka已經被很多的中小公司使用,訊息傳送接受,有用過的朋友可能就很清楚了,kafka是乙個支援分割槽的 分...

Kafka核心總結

乙個kafka的message由乙個固定長度的header和乙個變長的訊息體body組成。header部分由乙個位元組的magic 檔案格式 和四個位元組的crc32 用於判斷body訊息體是否正常 構成。當magic的值為1時,會在magic和crc32之間多乙個位元組的資料 attributes...

簡述Kafka核心原理

linux中kafka的常用命令 kafka是一種高吞吐量的分布式發布 訂閱 訊息系統,專為超高吞吐量的實時日誌採集 實時資料同步 實時資料計算等場景來設計。kafka是訊息中介軟體的一種,目前主流的訊息中介軟體有apache的activemq,linkedln開發的kafka 現已捐贈給apach...