kafka 消費模式基礎架構

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提供了兩種主要的消費模式:發布-訂閱模式和分區模式。

  1. 發布-訂閱模式:在這種模式下,一個消息可以被多個消費者同時消費。每個消費者都獨立地讀取消息,并且不會影響其他消費者。這種模式非常適用于需要廣播消息的場景,例如實時日志和即時通訊等。

  2. 分區模式:在這種模式下,消息被劃分為多個分區并存儲在不同的Kafka主題中。每個分區只能由一個消費者組中的一個消費者消費。這樣可以保證同一個分區的消息按順序被消費,并且可以進行負載均衡。這種模式適用于需要保證消息順序和處理吞吐量的場景,例如訂單處理和數據倉庫等。

Kafka還支持多種消費者組合消費模式的組合,例如多個消費者組同時消費同一個主題,或者多個消費者組按分區消費同一個主題。這些模式可以根據具體的業務需求來選擇。

基礎架構

Kafka 是一個分布式流數據平臺,用于高吞吐量、低延遲的處理大規模數據流。它具有以下基礎架構組件:

  1. Producer(生產者):生產者負責將數據發布到 Kafka 集群。它可以將數據發送到指定的 topic 中。

  2. Consumer(消費者):消費者從 Kafka 集群中訂閱一個或多個 topic,并消費流入的數據。消費者可以以不同的方式進行消費,如批量消費、實時消費等。

  3. Broker(代理服務器):Broker 是 Kafka 集群中的核心組件,負責接收和處理 Producer 發送的消息,并將消息持久化到磁盤中。每個 Broker 都是一個獨立的服務器節點,多個 Broker 組成一個 Kafka 集群。

  4. Topic(主題):Topic 是消息的邏輯容器,類似于消息隊列中的主題或頻道。Producer 發布的消息會被發送到指定的 topic 中,而 Consumer 訂閱的 topic 中的消息會被消費。

  5. Partition(分區):每個 topic 可以被分為多個分區,每個分區都是有序的、不可變的消息序列。分區可以分布在不同的 Broker 上,以實現負載均衡和容錯。

  6. Replication(副本):Kafka 使用副本機制來提供數據的可靠性和容錯性。每個分區都有多個副本,其中一個是 leader,負責處理客戶端的讀寫請求,其他副本則充當 follower,用于備份數據和提供容錯。

  7. Consumer Group(消費者組):Consumer Group 是一組共享相同消費邏輯的 Consumer 實例。當多個消費者加入同一個 Consumer Group 時,它們會協調消費 topic 中的分區,以實現負載均衡和并行處理。

  8. ZooKeeper:Kafka 使用 ZooKeeper 來管理和協調集群中的 Broker、Producer 和 Consumer。它負責維護集群的元數據,監控 Broker 的狀態,并通知各個組件的變化。

以上是 Kafka 的基礎架構組件,它們共同協作,實現了高性能、可擴展的數據流處理能力。

基礎架構2:

  1. Producer(生產者):負責將消息發布到 Kafka 集群。Producer 將消息分發到指定的 Topic(主題)。每個消息包含一個鍵和一個值。

  2. Topic(主題):是消息發布的類別或者頻道。Producer 可以將消息發布到一個或者多個主題。

  3. Consumer Group(消費者組):由一組消費者實例組成。每個消費者實例會訂閱一個或多個主題,并從中消費消息。

  4. Broker(代理服務器):Kafka 集群由多個 Broker 組成,每個 Broker 負責存儲和管理一部分主題的消息。Broker 之間會進行數據副本的同步,以實現高可用性。

  5. ZooKeeper:Kafka 使用 ZooKeeper 來進行集群管理和協調。ZooKeeper 負責存儲關于 Broker、Topic 和 Consumer Group 等元數據信息,并協助進行故障恢復。

  6. Consumer(消費者):消費者以 Consumer Group 的形式訂閱一個或多個主題,并從其中消費消息。每個消費者實例只會消費 Consumer Group 中的一個分區。

  7. Partition(分區):主題可以被分為一個或多個分區,每個分區是有序且獨立存儲的。分區在多個 Broker 之間進行數據副本的同步,以提高可用性和吞吐量。

參考資料和推薦閱讀

參考資料
官方文檔
開源社區
博客文章
書籍推薦

  1. 暫無

歡迎閱讀,各位老鐵,如果對你有幫助,點個贊加個關注唄!同時,期望各位大佬的批評指正~,如果有興趣,可以加文末的交流群,大家一起進步哈

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15407.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15407.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15407.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mainwindow.ui和mainwindow.h和ui_mainwindow.h這幾個文件之間的聯系是什么

在Qt應用程序開發中,mainwindow.ui, mainwindow.h, 和 ui_mainwindow.h 這三個文件之間有著緊密的聯系,共同構成了使用Qt Designer設計的圖形用戶界面(GUI)應用程序的基礎。下面是這三個文件各自的作用及它們之間的關聯&#xff1…

HTML5 文件處理及應用

HTML5 文件處理及應用 目錄 核心對象文件信息讀取文件拖放FileReaderSyncFileWriter APIBlob URL與 revokeObjectURL()跨源資源共享 (CORS)HTML5文件File API為瀏覽器提供了與用戶計算機上的文件進行交互的能力,使得Web應用程序能夠在客戶端直接處理文件數據,而無需依賴服務…

Golang:使用jszwec/csvutil讀取csv文件

jszwec/csvutil 高性能、慣用的CSV記錄編碼和解碼到本機Go結構 文檔 https://github.com/jszwec/csvutil 安裝 go get github.com/jszwec/csvutil要讀取的文件 user.csv name,age,CreatedAt jacek,26,2012-04-01T15:00:00Z john,,2001-01-01T00:00:00Z讀取示例 package m…

93.網絡游戲逆向分析與漏洞攻防-游戲技能系統分析-增強技能信息顯示后進行分析

免責聲明:內容僅供學習參考,請合法利用知識,禁止進行違法犯罪活動! 如果看不懂、不知道現在做的什么,那就跟著做完看效果,代碼看不懂是正常的,只要會抄就行,抄著抄著就能懂了 內容…

Ant Design Vue中 a-table 嵌套子表格

需求:在父表格中嵌套子表格,當點擊展開某一行時,有展開的關閉當前展開行。使用a-table中的expandedRowKeys 屬性和expand 方法。鏈接:Ant Design Vue 一、屬性說明: expandedRowKeys:這個主要是控制展開某行…

都2024年了!是誰還不會優化 Hive 的小文件啊!!!速看!

文章目錄 小文件產生的原因1.查詢建表或者插入2.裝載數據3.動態分區小文件影響解決方法針對已經存在的小文件進行優化1.小文件歸檔2.getmerge3.concatenate4.重寫針對寫入數據時的優化1.調參優化2.動態分區優化3.使用 Spark 算子控制小文件數量查看 HDFS 上的文件時,無意間點進…

【QT+VS】如何在現有VS項目中添加Qt界面?【全網最詳細】

0. 前置步驟 參考如下鏈接文章中的 前3個步驟(1:下載Qt;2:安裝Qt;3:安裝Qt插件),完成環境的配置和安裝。 深耕AI:如何聯合Qt,VS,C++,來開發一個電腦版軟件(簡單有趣,詳細) 本文的基礎項目鏈接為: c++工程+圖像分割預測+mmdet+實例分割+最新工程+簡潔易懂+新手…

搭建自己的視頻通話服務器Janus(WebRTC)

1. 安裝janus apt install janus 高版本的Ubuntu已經可以直接安裝了,不要編譯那么麻煩了 2. 安裝nginx janus 是后端,需要nginx或者其他等提供前端頁面的服務器,此外因為這里并沒有正式的證書,只能用自簽名的證書用于https。 …

Mac 更改登陸密碼,不是appleid 密碼

在Mac 上更改登錄密碼 在Mac 上,選取蘋果菜單 >“系統設置”,然后點按邊欄中的“用戶與群組” 。 … 點按右側用戶名旁邊的“簡介”按鈕 。 點按“更改”。 在“舊密碼”欄輸入你的當前密碼。 在“新密碼”欄中輸入新密碼,然后在“確認密碼…

「數據結構」隊列

目錄 隊列的基本概念 隊列的實現 頭文件queue.h 實現函數接口 1.初始化和銷毀 2.出隊列和入隊列 3.獲取隊頭元素和隊尾元素 4.隊列長度判空 后記 前言 歡迎大家來到小鷗的博客~ 個人主頁:海盜貓鷗 本篇專題:數據結構 多謝大家的支持啦&#xff…

Java入門基礎學習筆記36——面向對象基礎

面向對象編程快速入門: 計算機是用來處理數據的。 單個變量 數組變量 對象數據 Student類: package cn.ensource.object;public class Student {String name;double chinese_score;double math_score;public void printTotalScore() {System.out.pr…

【哈希】Leetcode 219. 存在重復元素 II【簡單】

存在重復元素 II 給你一個整數數組 nums 和一個整數 k &#xff0c;判斷數組中是否存在兩個 不同的索引 i 和 j &#xff0c;滿足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸…

偏微分方程算法之橢圓型雙調和方程問題

目錄 一、研究對象 二、問題解析 一、研究對象 針對雙調和方程的邊值問題:

達夢數據庫使用dmlcvt命令找回更改前的數據

在生產系統上不小心修改了表數據后最快的方法是用閃回查詢找回。但時間不能超過undo_retention&#xff08;默認90秒&#xff09;。其實最標準的處理方法是在其他機器上將數據庫恢復到修改前的時刻。但數據庫比較大時恢復時間較長。真實場景可能比較急。那么也可以分析歸檔日志…

數組序號Spinner

使用Spnner代替編輯框&#xff0c;只能選擇已有的&#xff0c;不會越界&#xff0c;大大簡化了代碼。 String[] SA new String[list.size()]; for (int i0; i<SA.length; i) {SA[i] String.valueOf(i); } ArrayAdapter<String> adapter1 new ArrayAdapter<>(…

[國產大模型簡單使用介紹] 開源與免費API

個人博客:Sekyoro的博客小屋 個人網站:Proanimer的個人網站 隨著大模型技術蓬勃發展和開源社區越來越活躍,國內的大模型也如雨后春筍一般.這時,一些就會問了,有了llama3,Mistral還有Gemma等等,國外大廠接連發力,一些開源社區也會有一些不錯的模型,國內怎么比?對一個人使用,oll…

下雨!大水蟻引發的水文!看比賽咯,曼聯VS曼城——早讀(逆天打工人爬取熱門微信文章解讀)

嘮嘮嗑 水一水 引言Python 代碼結尾 引言 今天星期六 大小周 一個等了很久的雙休 昨天晚上真的是嚇到我了 漫天的小飛蟲 我一開始還以為是一兩只 沒想到那些小飛蟲 從陽臺不斷飛進來 在山卡拉下面租房子 也是太恐怖了 來個特寫 他們也就一個晚上的時間 成蟲 天氣合適 長翅…

大語言模型發展歷史

大語言模型的發展歷史可以追溯到自然語言處理&#xff08;NLP&#xff09;和機器學習早期的探索&#xff0c;但真正快速發展起來是在深度學習技術興起之后。以下是大語言模型發展的一個簡要歷史概述&#xff1a; 早期階段&#xff08;20世紀50-90年代&#xff09;&#xff1a; …

網絡拓撲—DNS服務搭建

文章目錄 DNS服務搭建網絡拓撲配置網絡DNSPC 安裝DNS服務配置DNS服務創建正向查找區域創建反向查找區域創建子域名 PC機DNS域名解析 DNS服務搭建 網絡拓撲 為了節省我的U盤空間&#xff0c;沒有用路由器&#xff0c;所以搭建的環境只要在同網段即可。 //交換機不用考慮 DNS&a…

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用環境&#xff1a; python3.8cuda11.8其它要求&#xff0c;按照安裝文檔要求下載即可 我是在算力平臺用4090跑的&#xff0c; GPU 顯存&#xff08;8GB&#xff09;可以部署推理 int4 量化版本&#xff0c;如果推理非量化版本需要更高顯…