kafka 消費模式 &基礎架構
- 目錄
- 概述
- 需求:
- 設計思路
- 實現思路分析
- 1.kafka 消費模式
- 基礎架構
- 基礎架構2:
- 參考資料和推薦閱讀
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目錄
概述
kafka消費模式
需求:
設計思路
實現思路分析
1.kafka 消費模式
Kafka提供了兩種主要的消費模式:發布-訂閱模式和分區模式。
-
發布-訂閱模式:在這種模式下,一個消息可以被多個消費者同時消費。每個消費者都獨立地讀取消息,并且不會影響其他消費者。這種模式非常適用于需要廣播消息的場景,例如實時日志和即時通訊等。
-
分區模式:在這種模式下,消息被劃分為多個分區并存儲在不同的Kafka主題中。每個分區只能由一個消費者組中的一個消費者消費。這樣可以保證同一個分區的消息按順序被消費,并且可以進行負載均衡。這種模式適用于需要保證消息順序和處理吞吐量的場景,例如訂單處理和數據倉庫等。
Kafka還支持多種消費者組合消費模式的組合,例如多個消費者組同時消費同一個主題,或者多個消費者組按分區消費同一個主題。這些模式可以根據具體的業務需求來選擇。
基礎架構
Kafka 是一個分布式流數據平臺,用于高吞吐量、低延遲的處理大規模數據流。它具有以下基礎架構組件:
-
Producer(生產者):生產者負責將數據發布到 Kafka 集群。它可以將數據發送到指定的 topic 中。
-
Consumer(消費者):消費者從 Kafka 集群中訂閱一個或多個 topic,并消費流入的數據。消費者可以以不同的方式進行消費,如批量消費、實時消費等。
-
Broker(代理服務器):Broker 是 Kafka 集群中的核心組件,負責接收和處理 Producer 發送的消息,并將消息持久化到磁盤中。每個 Broker 都是一個獨立的服務器節點,多個 Broker 組成一個 Kafka 集群。
-
Topic(主題):Topic 是消息的邏輯容器,類似于消息隊列中的主題或頻道。Producer 發布的消息會被發送到指定的 topic 中,而 Consumer 訂閱的 topic 中的消息會被消費。
-
Partition(分區):每個 topic 可以被分為多個分區,每個分區都是有序的、不可變的消息序列。分區可以分布在不同的 Broker 上,以實現負載均衡和容錯。
-
Replication(副本):Kafka 使用副本機制來提供數據的可靠性和容錯性。每個分區都有多個副本,其中一個是 leader,負責處理客戶端的讀寫請求,其他副本則充當 follower,用于備份數據和提供容錯。
-
Consumer Group(消費者組):Consumer Group 是一組共享相同消費邏輯的 Consumer 實例。當多個消費者加入同一個 Consumer Group 時,它們會協調消費 topic 中的分區,以實現負載均衡和并行處理。
-
ZooKeeper:Kafka 使用 ZooKeeper 來管理和協調集群中的 Broker、Producer 和 Consumer。它負責維護集群的元數據,監控 Broker 的狀態,并通知各個組件的變化。
以上是 Kafka 的基礎架構組件,它們共同協作,實現了高性能、可擴展的數據流處理能力。
基礎架構2:
-
Producer(生產者):負責將消息發布到 Kafka 集群。Producer 將消息分發到指定的 Topic(主題)。每個消息包含一個鍵和一個值。
-
Topic(主題):是消息發布的類別或者頻道。Producer 可以將消息發布到一個或者多個主題。
-
Consumer Group(消費者組):由一組消費者實例組成。每個消費者實例會訂閱一個或多個主題,并從中消費消息。
-
Broker(代理服務器):Kafka 集群由多個 Broker 組成,每個 Broker 負責存儲和管理一部分主題的消息。Broker 之間會進行數據副本的同步,以實現高可用性。
-
ZooKeeper:Kafka 使用 ZooKeeper 來進行集群管理和協調。ZooKeeper 負責存儲關于 Broker、Topic 和 Consumer Group 等元數據信息,并協助進行故障恢復。
-
Consumer(消費者):消費者以 Consumer Group 的形式訂閱一個或多個主題,并從其中消費消息。每個消費者實例只會消費 Consumer Group 中的一個分區。
-
Partition(分區):主題可以被分為一個或多個分區,每個分區是有序且獨立存儲的。分區在多個 Broker 之間進行數據副本的同步,以提高可用性和吞吐量。
參考資料和推薦閱讀
參考資料
官方文檔
開源社區
博客文章
書籍推薦
- 暫無
歡迎閱讀,各位老鐵,如果對你有幫助,點個贊加個關注唄!同時,期望各位大佬的批評指正~,如果有興趣,可以加文末的交流群,大家一起進步哈