Kafka 架構原理

一個kafka集群中包含一個或多個Producer、一個或多個broker、一個或多個ConsumerGrop以及一個Zookeeper集群。kafka通過Zookeeper管理kafka集群配置、leader副本的選舉、生產者的負載均衡等。Producer使用push模式將消息發布到broker,Consumer使用pull模式從broker訂閱并消費消息。

專業術語

  1. kafkaCluster : kafka集群,由一個或多個Broker節點組成。
  2. Broker : 一個Kafka集群包括一個或多個服務器,一臺服務器就是一個Broker節點。Broker用于保存Producer發送的消息。
  3. Producer :生產者,用來發送指定的Topic的消息到Broker。生產者可以是代碼,還可以是命令行工具。本質上是一個進程或者線程。
  4. Consumer :消費者,用來接收/消費Kafka集群中的消息。每個Consumer屬于一個ConsumerGroup(如果在創建消費者時沒有指定Consumer,系統會默認分配一個ConsumerGroup),消費者可以是代碼,還可以是命令行工具,本質上就是一個進程/線程。
  5. ConsumerGroup :消費者組,由一個或多個Consumer組成(在同一個消費者組的消費者具有相同的group.id),便于管理Consumer。
  6. Zookeeper :在Kafka集群中用來存儲元數據,如:有Broker節點信息、分區的信息、分區與Broker的對應關系、生產者的負載均衡等等。
  7. Topic :主題,主題用于區分業務,比如訂單主題業務,購物車主題業務,物流主題業務……方便對消息進行分類管理
  8. Partition :分區,一個Topic的消息由一個或多個Partition存儲。分區的作用是提高讀寫并行度/讀寫效率。
  9. Segment :分段,發送到kafka集群的消息會先存到內存中,然后劃分文件夾、劃分文件存入磁盤中

  1. Replication :副本,副本的作用是保證數據的安全性,副本分為Leader(主副本)和Follower(從副本),Leader只有一個,Follower可以有多個,但是副本數一般都為1-3個(副本數過多會占用大量的存儲空間)。

注意:讀寫都只能從Leader進行,Follower在Leader宕機后自動選舉出新的Leader。

擴展: 為什么讀寫都只能從Leader進行?

答:保證數據的一致性,只在Leader中進行寫入數據,Follow同步Leader中的數據,在寫過程中避免了多個副本中存儲的數據不同的問題。Leader 和 Follow之間同步數據存在延時,所以讀操作也需要在Leader中進行。

11. ISR : 表示目前Alive(活著的)且與Leader能夠 “Catch-up”(跟得上)的Replicas(Follower)集合。

12. Record :記錄,就是發送到Kafka集群的消息。一條消息就是一條記錄。

13. offset : 偏移量,用于記錄消息的序號,各個分區的偏移量都是從0開始。

備注: Kafka中有分區和分段的概念,分區就是分文件夾,分段就是分文件。這個思想在Hive中也有:Hive中的分區就是分文件夾,Hive中的分桶就是分文件。

跟RocketMQ的區別

1,元素據管理:

RocketMQ 有自己的管理節點 Nameserver,   Kafka中是依賴zookeeper做元素據的管理。

2,消息存儲

RocketMQ 所有Topic數據同時只會寫一個文件。Kafka每個Top

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

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

相關文章

用 PyTorch 搭建 CNN 實現 MNIST 手寫數字識別

在圖像識別領域,卷積神經網絡(CNN) 憑借其對空間特征的高效提取能力,成為手寫數字識別、人臉識別等任務的首選模型。而 MNIST(手寫數字數據集)作為入門級數據集,幾乎是每個深度學習學習者的 “第…

CTFshow系列——命令執行web61-68

本篇文章介紹了不同了方法進行題目的解析以及原因講解。 文章目錄Web61嘗試了一下,被過濾的payload如下:所以,根據上述思路,這里嘗試過的payload為:Web62(同Web61)Web63(同Web62&…

.Net程序員就業現狀以及學習路線圖(二)

一、.NET程序員就業現狀分析 1. 市場需求與崗位分布 2025年.NET開發崗位全國招聘職位約1676個,占全國技術崗位的0.009%,主要集中在一線城市如深圳、上海等地。就業單位類型分布為:軟件公司占43.3%,研發機構占33.1%,物聯…

MTK Linux DRM分析(二十二)- MTK mtk_drm_crtc.c(Part1)

一、代碼分析 mtk_drm_crtc.c以mtk_crtc_comp_is_busy函數為界限進行拆分分析 static const struct drm_crtc_funcs mtk_crtc_funcs = {.set_config = drm_atomic_helper_set_config,.page_flip = drm_atomic_helper_page_flip,.destroy = mtk_drm_crtc_destroy,.reset = mtk…

stm32f103c8t6 led閃燈實驗

目錄 閃燈原理 2種接線方式控制閃燈 使用推挽接法 使用開漏接法 看原理圖 寫代碼 閃燈原理 LED燈有個2-10mA的電流就可以點亮 3.3/5100.006A6mA 2種接線方式控制閃燈 使用推挽接法 當設置推挽模式時,CPU控制寄存器寫0,IO引腳輸出低電壓&#xff0…

“我同意”按鈕別亂點——你的“職業EULA”漏洞掃描報告

尊敬的審核: 本人文章《“我同意”按鈕別亂點——你的“職業EULA”漏洞掃描報告》 1. 純屬技術交流,無任何違法內容 2. 所有法律引用均來自公開條文 3. 請依據《網絡安全法》第12條“不得無故刪除合法內容”處理 附:本文結構已通過區塊鏈存證…

Product Hunt 每日熱榜 | 2025-09-01

1. A01 標語:你個人的新聞助手 介紹:A01 是你的新聞助手,可以幫你關注你關心的任何話題。只需告訴它你想了解什么,它就能為你帶來最新的文章。 產品網站: 立即訪問 Product Hunt: View on Product Hunt…

【OpenFeign】基礎使用

【OpenFeign】基礎使用1. Feign介紹1.1 使用示例1.2 Feign與RPC對比1.3 SpringCloud Alibaba快速整合OpenFeign1.3.1 詳細代碼1. Feign介紹 1.什么是 Feign Feign 是 Netflix 開發的一個 聲明式的 HTTP 客戶端,在 Spring Cloud 中被廣泛使用。它的目標是&#xff…

訪問相同的url,相同入參的請求,Apifox/Postman可以正常響應結果,而本地調用不行(或結果不同)

文章目錄問題概述Apifox查看實際請求總結問題概述 開發中有一個需求需要去別的系統中拿數據,配置好相關參數后發起請求時發現響應結果和在Apifox上不同,Apifox上正常顯示數據,而本地調用后返回數據不存在。 這就很奇怪了,想了很多…

數據結構(C語言篇):(七)雙向鏈表

目錄 前言 一、概念與結構 二、雙向鏈表的實現 2.1 頭文件的準備 2.2 函數的實現 2.2.1 LTPushBack( )函數(尾插) (1)LTBuyNode( ) (2)LTInit( ) (3)LTPrint( ) &#x…

從拿起簡歷(resume)重新找工作開始聊起

經濟蕭條或經濟衰退在經濟相關學術上似乎有著嚴格的定義,我不知道我們的經濟是否已經走向了衰退或者蕭條,但有一點那是肯定的,那就現在我們的經濟肯定是不景氣的。經濟不景氣會怎么樣?是的,會有很多人失業,…

OS+MySQL+(其他)八股小記

魯迅先生曾經說過,每天進步一點點,媽媽夸我小天才。 依舊今日八股,這是我在多個文檔整合一起的,可能格式有些問題,請諒解。 操作系統 1.進程和線程的區別? 進程是代碼在數據集合的一次執行活動,…

Transformer的并行計算與長序列處理瓶頸總結

🌟 第0層:極簡版(30秒理解)一句話核心:Transformer像圓桌會議——所有人都能同時交流(并行優勢),但人越多會議越混亂(長序列瓶頸)。核心問題 并行優勢&#x…

Vue 3 useId 完全指南:生成唯一標識符的最佳實踐

📖 概述 useId() 是 Vue 3 中的一個組合式 API 函數,用于生成唯一的標識符。它確保在服務端渲染(SSR)和客戶端渲染之間生成一致的 ID,避免水合不匹配的問題。 🎯 基本概念 什么是 useId? useId…

CGroup 資源控制組 + Docker 網絡模式

1 CGroup 資源控制組1.1 為什么需要 CGroup - 容器本質 宿主機上一組進程 - 若無資源邊界,一個暴走容器即可拖垮整機 - CGroup 提供**內核級硬限制**,比 ulimit、nice 更可靠1.2 核心概念 3 件套 | 概念 | 一句話解釋 | 查看方式 | | Hierarchy | 樹…

【ArcGIS微課1000例】0150:如何根據地名獲取經緯度坐標

本文介紹了三種獲取地理坐標的方法:1)在ArcGIS Pro中通過搜索功能定位目標點(如月牙泉)并查看其WGS84坐標;2)使用ArcGIS內置工具獲取坐標;3)推薦三個在線工具(maplocation、地球在線、yanue)支持批量查詢和多地圖源坐標轉換。強調了使用WGS84坐標系以減少誤差,并展示…

HTML應用指南:利用GET請求獲取MSN財經股價數據并可視化

隨著數字化金融服務的不斷深化,及時、準確的財經信息已成為投資者決策與市場分析的重要支撐。MSN財經股價數據服務作為廣受信賴的金融信息平臺,依托微軟強大的技術架構與數據整合能力,持續為全球用戶提供全面、可靠的證券市場數據。平臺不僅提…

雅思聽力第四課:配對題核心技巧與詞匯深化

現在,請拿出劍橋真題,開始你的刻意練習! 內容大綱 課程核心目標舊題回顧與基礎鞏固配對題/匹配題核心解題策略考點總結與精聽訓練表 一、課程核心目標 掌握第二部分配對題的解題策略攻克第三部分匹配題的改寫難點系統整理高頻場景詞匯與特…

SQL Server從入門到項目實踐(超值版)讀書筆記 25

第12章 存儲過程的應用 🎉學習指引 存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL語句集,存儲過程時數據庫中的一個重要對象,它代替了傳統的逐條執行SQL語句的方式。本章就來…

20.29 QLoRA適配器實戰:24GB顯卡輕松微調650億參數大模型

QLoRA適配器實戰:24GB顯卡輕松微調650億參數大模型 QLoRA 適配器配置深度解析 一、QLoRA 適配器核心原理 QLoRA 作為當前大模型微調領域的前沿技術,通過量化與低秩適配的協同設計,在保證模型效果的前提下實現了顯存占用的革命性降低。其核心由三大技術支柱構成: 4位量化…