淡水做網(wǎng)站網(wǎng)絡(luò)推廣公司是干什么
kafka 消費(fèi)模式 &基礎(chǔ)架構(gòu)
- 目錄
- 概述
- 需求:
- 設(shè)計思路
- 實(shí)現(xiàn)思路分析
- 1.kafka 消費(fèi)模式
- 基礎(chǔ)架構(gòu)
- 基礎(chǔ)架構(gòu)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消費(fèi)模式
需求:
設(shè)計思路
實(shí)現(xiàn)思路分析
1.kafka 消費(fèi)模式
Kafka提供了兩種主要的消費(fèi)模式:發(fā)布-訂閱模式和分區(qū)模式。
-
發(fā)布-訂閱模式:在這種模式下,一個消息可以被多個消費(fèi)者同時消費(fèi)。每個消費(fèi)者都獨(dú)立地讀取消息,并且不會影響其他消費(fèi)者。這種模式非常適用于需要廣播消息的場景,例如實(shí)時日志和即時通訊等。
-
分區(qū)模式:在這種模式下,消息被劃分為多個分區(qū)并存儲在不同的Kafka主題中。每個分區(qū)只能由一個消費(fèi)者組中的一個消費(fèi)者消費(fèi)。這樣可以保證同一個分區(qū)的消息按順序被消費(fèi),并且可以進(jìn)行負(fù)載均衡。這種模式適用于需要保證消息順序和處理吞吐量的場景,例如訂單處理和數(shù)據(jù)倉庫等。
Kafka還支持多種消費(fèi)者組合消費(fèi)模式的組合,例如多個消費(fèi)者組同時消費(fèi)同一個主題,或者多個消費(fèi)者組按分區(qū)消費(fèi)同一個主題。這些模式可以根據(jù)具體的業(yè)務(wù)需求來選擇。
基礎(chǔ)架構(gòu)
Kafka 是一個分布式流數(shù)據(jù)平臺,用于高吞吐量、低延遲的處理大規(guī)模數(shù)據(jù)流。它具有以下基礎(chǔ)架構(gòu)組件:
-
Producer(生產(chǎn)者):生產(chǎn)者負(fù)責(zé)將數(shù)據(jù)發(fā)布到 Kafka 集群。它可以將數(shù)據(jù)發(fā)送到指定的 topic 中。
-
Consumer(消費(fèi)者):消費(fèi)者從 Kafka 集群中訂閱一個或多個 topic,并消費(fèi)流入的數(shù)據(jù)。消費(fèi)者可以以不同的方式進(jìn)行消費(fèi),如批量消費(fèi)、實(shí)時消費(fèi)等。
-
Broker(代理服務(wù)器):Broker 是 Kafka 集群中的核心組件,負(fù)責(zé)接收和處理 Producer 發(fā)送的消息,并將消息持久化到磁盤中。每個 Broker 都是一個獨(dú)立的服務(wù)器節(jié)點(diǎn),多個 Broker 組成一個 Kafka 集群。
-
Topic(主題):Topic 是消息的邏輯容器,類似于消息隊列中的主題或頻道。Producer 發(fā)布的消息會被發(fā)送到指定的 topic 中,而 Consumer 訂閱的 topic 中的消息會被消費(fèi)。
-
Partition(分區(qū)):每個 topic 可以被分為多個分區(qū),每個分區(qū)都是有序的、不可變的消息序列。分區(qū)可以分布在不同的 Broker 上,以實(shí)現(xiàn)負(fù)載均衡和容錯。
-
Replication(副本):Kafka 使用副本機(jī)制來提供數(shù)據(jù)的可靠性和容錯性。每個分區(qū)都有多個副本,其中一個是 leader,負(fù)責(zé)處理客戶端的讀寫請求,其他副本則充當(dāng) follower,用于備份數(shù)據(jù)和提供容錯。
-
Consumer Group(消費(fèi)者組):Consumer Group 是一組共享相同消費(fèi)邏輯的 Consumer 實(shí)例。當(dāng)多個消費(fèi)者加入同一個 Consumer Group 時,它們會協(xié)調(diào)消費(fèi) topic 中的分區(qū),以實(shí)現(xiàn)負(fù)載均衡和并行處理。
-
ZooKeeper:Kafka 使用 ZooKeeper 來管理和協(xié)調(diào)集群中的 Broker、Producer 和 Consumer。它負(fù)責(zé)維護(hù)集群的元數(shù)據(jù),監(jiān)控 Broker 的狀態(tài),并通知各個組件的變化。
以上是 Kafka 的基礎(chǔ)架構(gòu)組件,它們共同協(xié)作,實(shí)現(xiàn)了高性能、可擴(kuò)展的數(shù)據(jù)流處理能力。
基礎(chǔ)架構(gòu)2:
-
Producer(生產(chǎn)者):負(fù)責(zé)將消息發(fā)布到 Kafka 集群。Producer 將消息分發(fā)到指定的 Topic(主題)。每個消息包含一個鍵和一個值。
-
Topic(主題):是消息發(fā)布的類別或者頻道。Producer 可以將消息發(fā)布到一個或者多個主題。
-
Consumer Group(消費(fèi)者組):由一組消費(fèi)者實(shí)例組成。每個消費(fèi)者實(shí)例會訂閱一個或多個主題,并從中消費(fèi)消息。
-
Broker(代理服務(wù)器):Kafka 集群由多個 Broker 組成,每個 Broker 負(fù)責(zé)存儲和管理一部分主題的消息。Broker 之間會進(jìn)行數(shù)據(jù)副本的同步,以實(shí)現(xiàn)高可用性。
-
ZooKeeper:Kafka 使用 ZooKeeper 來進(jìn)行集群管理和協(xié)調(diào)。ZooKeeper 負(fù)責(zé)存儲關(guān)于 Broker、Topic 和 Consumer Group 等元數(shù)據(jù)信息,并協(xié)助進(jìn)行故障恢復(fù)。
-
Consumer(消費(fèi)者):消費(fèi)者以 Consumer Group 的形式訂閱一個或多個主題,并從其中消費(fèi)消息。每個消費(fèi)者實(shí)例只會消費(fèi) Consumer Group 中的一個分區(qū)。
-
Partition(分區(qū)):主題可以被分為一個或多個分區(qū),每個分區(qū)是有序且獨(dú)立存儲的。分區(qū)在多個 Broker 之間進(jìn)行數(shù)據(jù)副本的同步,以提高可用性和吞吐量。
參考資料和推薦閱讀
參考資料
官方文檔
開源社區(qū)
博客文章
書籍推薦
- 暫無
歡迎閱讀,各位老鐵,如果對你有幫助,點(diǎn)個贊加個關(guān)注唄!同時,期望各位大佬的批評指正~,如果有興趣,可以加文末的交流群,大家一起進(jìn)步哈