Kafka(一)基礎介紹

一,Kafka集群


一個典型的 Kafka 體系架構包括若Producer、Broker、Consumer,以及一個ZooKeeper集群,如圖所示。
  • ZooKeeper:Kafka負責集群元數據的管理、控制器的選舉等操作的;
  • Producer:將消息發送到Broker;
  • Broker:服務代理節點,負責將收到的消息存儲到磁盤中。Broker可以簡單地看作一個獨立的Kafka服務節點或Kafka服務實例,一個或多個Broker組成了一個Kafka集群。
  • Consumer:負責從Broker訂閱并消費消息;

二,主題(Topic)與分區(Partition)


  • 消息根據Topic歸類,生產者將消息發送到特定的Topic,而消費者訂閱Topic并進行消費。
  • 一個Topic可以有多個Partition,Partition是一個可追加的日志文件,消息在被追加到分區日志都會分配一個特定的偏移量(offset)。
  • Kafka通過offset來保證消息在分區內的順序性,不過offset并不跨越分區,也就是說, Kafka保證的是分區有序而不是Topic有序
  • 分區可以分布在不同的broker上,也就是說, 一個Topic可以橫跨多個broker
  • Consumer使用Pull模式從服務端拉取消息,并且 保存消費的offset,當消費者宕機后恢復時可以根據offset重新拉取,這樣就不會造成消息丟失。
1,Replica機制
分區引入了多副本(Replica)機制,通過增加副本數量可以提升容災能力。
副本一主多從,其中leader副本負責處理 讀寫請求( 生產者和消費者只與leader交互 ,follower副本只負責與leader副本的消息同步。
2, AR = ISR + OSR
AR:分區中的所有的副本
ISR:與leader保持一定程度(可配置)同步的副本(包括leader在內)
OSR:與leader同步滯后過多的副本
正常情況下,所有的 follower 副本都應該與 leader 副本保持一定程度的同步,即 AR=ISR,OSR集合為空。
  • leader負責維護和跟蹤所有follower的滯后狀態,并把follower在ISR和OSR中移動;
  • 默認下,當leader發生故障時,只有在ISR中的副本才有資格被選舉為新的leader(可通過配置改變)
3,HW和LEO
這是兩個特定的偏移量。
HW:High Watermark的縮寫,俗稱高水位。消費者只能拉取到這個HW之前的消息;
LEO:Log End Offset的縮寫,標識下一條待寫入消息的offset;
注意:這倆都有個+1的關系;
ISR集合中的每個副本都會維護自身的LEO,而ISR集合中最小的LEO即為分區的HW,對消費者而言只能消費HW之前的消息。
舉例說明:
4,Kafka的復制機制
Kafka 的復制機制既不是完全的同步復制(所有能工作的 follower都復制完),也不是單純的異步復制(只要寫入leaderr則成功提交)。Kafka使用的這種ISR機制有效地權衡了數據可靠性和性能的關系。

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

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

相關文章

隨著云計算和容器技術的廣泛應用,如何在這些環境中有效地運用 Shell 進行自動化部署和管理?

在云計算和容器技術的環境中,Shell 腳本可以被用于自動化部署和管理任務。下面是一些在這些環境中有效使用 Shell 進行自動化部署和管理的方法: 在云環境中,使用云服務提供商的 API 進行自動化管理。例如,使用命令行工具或 SDK 來…

14 - Python網絡應用開發

網絡應用開發 發送電子郵件 在即時通信軟件如此發達的今天,電子郵件仍然是互聯網上使用最為廣泛的應用之一,公司向應聘者發出錄用通知、網站向用戶發送一個激活賬號的鏈接、銀行向客戶推廣它們的理財產品等幾乎都是通過電子郵件來完成的,而…

[AI 大模型] OpenAI ChatGPT

文章目錄 ChatGPT 簡介ChatGPT 的模型架構ChatGPT的發展歷史節點爆發元年AI倫理和安全 ChatGPT 新技術1. 技術進步2. 應用領域3. 代碼示例4. 對話示例 ChatGPT 簡介 ChatGPT 是由 OpenAI 開發的一個大型語言模型,基于GPT-4架構。它能夠理解和生成自然語言文本&…

學習筆記——動態路由——OSPF(特殊區域)

十、OSPF特殊區域 1、技術背景 早期路由器靠CPU計算轉發,由于硬件技術限制問題,因此資源不是特別充足,因此是要節省資源使用,規劃是非常必要的。 OSPF路由器需要同時維護域內路由、域間路由、外部路由信息數據庫。當網絡規模不…

電腦會議錄音轉文字工具哪個好?5個轉文字工具簡化工作流程

在如今忙碌的生活中,我們常常需要記錄和回顧重要的對話和討論。手寫筆記可能跟不上速度,而錄音則以其便捷性成為了捕捉信息的有力工具。但錄音文件的后續處理,往往讓人頭疼不已。想象一下,如果能夠瞬間將這些聲音轉化為文字&#…

spring-16

Spring 對 DAO 的支持 Spring 對 DAO 的支持是通過 Spring 框架的 JDBC 模塊實現的,它提供了一系列的工具和類來簡化數據訪問對象(DAO)的開發和管理。 首先,我們需要在 Spring 配置文件中配置數據源和事務管理器: &l…

Java筆試|面試 —— 子類對象實例化全過程 (熟悉)

子類對象實例化全過程 (熟悉) (1)從結果的角度來看:體現為繼承性 當創建子類對象后,子類對象就獲取了其父類中聲明的所有的屬性和方法,在權限允許的情況下,可以直接調用。 (2)從過…

iptables實現端口轉發ssh

iptables實現端口轉發 實現使用防火墻9898端口訪問內網front主機的22端口(ssh連接) 1. 防火墻配置(lb01) # 配置iptables # 這條命令的作用是將所有目的地為192.168.100.155且目標端口為19898的TCP數據包的目標IP地址改為10.0.0.148,并將目標…

Java策略模式在動態數據驗證中的應用

在軟件開發中,數據驗證是一項至關重要的任務,它確保了數據的完整性和準確性,為后續的業務邏輯處理奠定了堅實的基礎。然而,不同的數據來源往往需要不同的驗證規則,如何在不破壞代碼的整潔性和可維護性的同時&#xff0…

無向圖中尋找指定路徑:深度優先遍歷算法

刷題記錄 1. 節點依賴 背景: 類似于無向圖中, 尋找從 起始節點 --> 目標節點 的 線路. 需求: 現在需要從 起始節點 A, 找到所有到 終點 H 的所有路徑 A – B : 路徑由一個對象構成 public class NodeAssociation {private String leftNodeName;private Stri…

數據編碼的藝術:sklearn中的數據轉換秘籍

數據編碼的藝術:sklearn中的數據轉換秘籍 在機器學習中,數據預處理是一個至關重要的步驟,它直接影響到模型的性能和結果的準確性。數據編碼轉換是數據預處理的一部分,它涉及將原始數據轉換成適合模型訓練的格式。scikit-learn&am…

Python 爬蟲 tiktok關鍵詞搜索用戶數據信息 api接口

Tiktok APP API接口 Python 爬蟲采集Tiktok數據 采集結果頁面如下圖: https://www.tiktok.com/search?qwwe&t1706679918408 請求API http://api.xxx.com/tt/search/user?keywordwwe&count10&offset0&tokentest 請求參數 返回示例 聯系我們&…

178 折線圖-柱形圖-餅狀圖

1.折線圖 1、QChart 類繼承自 QGraphicsWidget,用于管理圖表、圖例和軸。2、QValueAxis 類專門用來自定義圖表中 X 和 Y 坐標軸。3、QLineSeries 類專門用于折線圖(曲線)的形式展示數據 //.pro QT core gui charts#ifndef WIDGET_H #defi…

探索鄰近奧秘:SKlearn中K-近鄰(KNN)算法的應用

探索鄰近奧秘:SKlearn中K-近鄰(KNN)算法的應用 在機器學習的世界里,K-近鄰(K-Nearest Neighbors,簡稱KNN)算法以其簡單直觀而著稱。KNN是一種基本的分類和回歸方法,它的工作原理非常…

Error in onLoad hook: “SyntaxError: Unexpected token u in JSON at position 0“

1.接收頁面報錯 Error in onLoad hook: "SyntaxError: Unexpected token u in JSON at position 0" Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) 2.發送頁面 &#xff0c;JSON.stringify(item) &#xff0c;將對象轉換為 JSO…

前端JS特效第22集:html5音樂旋律自定義交互特效

html5音樂旋律自定義交互特效&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下(全部代碼在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>ChimeTime?</title…

【Python】已解決:xml.parsers.expat.ExpatError: no element found: Line 1, column 0

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決&#xff1a;xml.parsers.expat.ExpatError: no element found: Line 1, column 0 一、分析問題背景 在使用Python的xml.parsers.expat模塊解析XML文件時&#xff0c;有時會…

算法011:最大連續的1的個數

最大連續的1的個數. - 備戰技術面試&#xff1f;力扣提供海量技術面試資源&#xff0c;幫助你高效提升編程技能,輕松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/max-consecutive-ones-iii/ 乍一看&#xff0c;這道題很奇怪&#xff0c;什么叫最多翻轉k個0&a…

稀疏之美:在Mojo模型中實現特征的稀疏表示

稀疏之美&#xff1a;在Mojo模型中實現特征的稀疏表示 在機器學習領域&#xff0c;特征的稀疏表示是一種高效的數據編碼方式&#xff0c;尤其適用于具有大量特征和缺失值的數據集。稀疏表示使用特殊的數據結構來存儲和處理數據&#xff0c;從而減少內存占用和提高計算效率。Mo…

vue3+ts實現一個表單組件

1. 創建表單組件 首先&#xff0c;創建一個表單組件&#xff0c;包括姓名、手機號、年齡、學校、性別等基本信息的輸入框&#xff0c;并添加省市區和街道地點的選擇功能。 <template><form submit.prevent"submitForm"><el-form :model"formDa…