Kafka學習記錄

2021-10-06 16:36:30 字數 1430 閱讀 7085

kafka適合什麼樣的場景?

它可以用於兩大類別的應用:

構造實時流資料管道,它可以在系統或應用之間可靠地獲取資料。 (相當於message queue)

構建實時流式應用程式,對這些流資料進行轉換或者影響。 (就是流處理,通過kafka stream topic和topic之間內部進行變化)

以下是一些基本的概念

負責生產訊息並塞入到kafka伺服器中

每乙個kafka執行的程序就可以理解為是乙個broker

kafka中介軟體是基於發布與訂閱的架構,生產者將訊息發布到主題,由不同消費者訂閱不同的主題,獲取對應的資料

用於訊息分類,不同型別的訊息塞入到不同的主題中,消費者只關注自己訂閱的topic訊息;可進行分割槽,每個分割槽都有對應的副本

提高topic的負載均衡,乙個topic可以分多個partition

消費者只與leader直連,follower的存在僅僅只是用於備份。

kakfa broker leader的選舉:kakfa broker集群受zookeeper管理。所有的kafka broker節點一起去zookeeper上註冊乙個臨時節點,因為只有乙個kafka broker會註冊成功,其他的都會失敗,所以這個成功在zookeeper上註冊臨時節點的這個kafka broker會成為kafka broker controller,其他的kafka broker叫kafka broker follower。(這個過程叫controller在zookeeper註冊watch)。這個controller會監聽其他的kafka broker的所有資訊,如果這個kafka broker controller宕機了,在zookeeper上面的那個臨時節點就會消失,此時所有的kafka broker又會一起去zookeeper上註冊乙個臨時節點,因為只有乙個kafka broker會註冊成功,其他的都會失敗,所以這個成功在zookeeper上註冊臨時節點的這個kafka broker會成為kafka broker controller,其他的kafka broker叫kafka broker follower。例如:一旦有乙個broker宕機了,這個kafka broker controller會讀取該死機broker上所有的partition在zookeeper上的狀態,並選取isr列表中的乙個replica作為partition leader(如果isr列表中的replica全掛,選乙個倖存的replica作為leader; 如果該partition的所有的replica都宕機了,則將新的leader設定為-1,等待恢復,等待isr中的任乙個replica「活」過來,並且選它作為leader;或選擇第乙個「活」過來的replica(不一定是isr中的)作為leader),這個broker宕機的事情,kafka controller也會通知zookeeper,zookeeper就會通知其他的kafka broker。

從主題分割槽中拉取資料,一般由consumer group組成,同乙個主題分割槽只能被乙個消費者組裡面的某乙個消費者消費

kafka學習記錄

kafka集群搭建 1 搭建 2 配置檔案介紹 軟體環境 linux 需要有zookeeper集群,版本選擇0.8.1 kafka 原始碼包 配置檔案 server.properties 不推薦使用預設的zookeeper broker.id 0 例項id 集群中的唯一標示 prot 9092 ho...

kafka學習記錄 1 為什麼學習kafka

2019.10.04 學習記錄1 極客時間 kafka核心技術與實戰 一 為什麼學習kafka 就拿資料量激增來說,kafka能夠有效隔離上下游業務,將上游突增的流量快取起來,以平滑的方式傳導到下游子系統中,避免了流量的不規則衝擊。apache kafka是一款開源的訊息引擎系統。訊息傳遞 官方 訊...

Kafka試用記錄

為了初步了解kafka功能和效能,通過實驗簡單試用。1 kafka 2.9.1 0.8.2.1演示 zookeeper server 192.168.1.66 2181 kafka server 192.168.1.66 9092 kafka consumer 192.168.1.55 wget t...