大數據技術Kafka詳解 ⑤ | Kafka中的CAP機制

目錄

1、分布式系統當中的CAP理論

1.1、CAP理論

1.2、Partitiontolerance

1.3、Consistency

1.4、Availability

2、Kafka中的CAP機制


C++軟件異常排查從入門到精通系列教程(核心精品專欄,訂閱量已達600多個,歡迎訂閱,持續更新...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/125529931C/C++實戰專欄(重點專欄,專欄文章已更新500多篇,訂閱量已達數百個,歡迎訂閱,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/140824370C++ 軟件開發從入門到實戰(重點專欄,專欄文章已更新280多篇,歡迎訂閱,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/category_12695902.htmlVC++常用功能開發匯總(專欄文章列表,歡迎訂閱,持續更新...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/124272585C++軟件分析工具從入門到精通案例集錦(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/131405795開源組件及數據庫技術(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/category_12458859.html網絡編程與網絡問題分享(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/category_2276111.html

1、分布式系統當中的CAP理論

1.1、CAP理論

分布式系統(distributed system)正變得越來越重要,大型網站幾乎都是分布式的。

分布式系統的最大難點,就是各個節點的狀態如何同步。

為了解決各個節點之間的狀態同步問題,在1998年,由加州大學的計算機科學家EricBrewer提出分布式系統的三個指標,分別是:

  • Consistency:一致性
  • Availability:可用性
  • Partitiontolerance:分區容錯性

EricBrewer說,這三個指標不可能同時做到。最多只能同時滿足其中兩個條件,這個結論就叫做CAP定理。

CAP理論是指:分布式系統中,一致性、可用性和分區容忍性最多只能同時滿足兩個。

一致性:Consistency

  • 通過某個節點的寫操作結果對后面通過其它節點的讀操作可見。
  • 如果更新數據后,并發訪問情況下后續讀操作可立即感知該更新,稱為強一致性
  • 如果允許之后部分或者全部感知不到該更新,稱為弱一致性。
  • 若在之后的一段時間(通常該時間不固定)后,一定可以感知到該更新,稱為最終一致性。

可用性:Availability

任何一個沒有發生故障的節點必須在有限的時間內返回合理的結果。

分區容錯性:Partitiontolerance

  • 部分節點宕機或者無法與其它節點通信時,各分區間還可保持分布式系統的功能
  • 一般而言,都要求保證分區容忍性。所以在CAP理論下,更多的是需要在可用性和一致性之間做權衡。

1.2、Partitiontolerance

先看Partitiontolerance,中文叫做"分區容錯"。

大多數分布式系統都分布在多個子網絡。每個子網絡就叫做一個區(partition)。分區容錯的意思是,區間通信可能失敗。比如,一臺服務器放在中國,另一臺服務器放在美國,這就是兩個區,它們之間可能無法通信。

上圖中,G1和G2是兩臺跨區的服務器。G1向G2發送一條消息,G2可能無法收到。系統設計的時候,必須考慮到這種情況。

一般來說,分區容錯無法避免,因此可以認為CAP的P總是存在的。即永遠可能存在分區容錯這個問題。


? ? ? ?在這里,給大家重點推薦一下我的幾個熱門暢銷專欄,歡迎訂閱:(博客主頁還有其他專欄,可以去查看)

專欄1:該精品技術專欄的訂閱量已達到600多個,專欄中包含大量項目實戰分析案例,有很強的實戰參考價值,廣受好評!專欄文章已經更新到200篇以上,持續更新中!歡迎訂閱!)

C++軟件調試與異常排查從入門到精通系列文章匯總(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/125529931

本專欄根據多年C++軟件異常排查的項目實踐,系統地總結了引發C++軟件異常的常見原因以及排查C++軟件異常的常用思路與方法,詳細講述了C++軟件的調試方法與手段,以圖文并茂的方式給出具體的項目問題實戰分析實例(很有實戰參考價值),帶領大家逐步掌握C++軟件調試與異常排查的相關技術,適合基礎進階和想做技術提升的相關C++開發人員!

考察一個開發人員的水平,一是看其編碼及設計能力,二是要看其軟件調試能力!所以軟件調試能力(排查軟件異常的能力)很重要,必須重視起來!能解決一般人解決不了的問題,既能提升個人能力及價值,也能體現對團隊及公司的貢獻!

專欄中的文章都是通過項目實戰總結出來的,包含大量項目問題實戰分析案例,有很強的實戰參考價值!專欄文章還在持續更新中,預計文章篇數能更新到200篇以上!

專欄2:(本專欄涵蓋了C++多方面的內容,是當前重點打造的專欄,訂閱量已達300多個,專欄文章已經更新到500多篇,持續更新中!歡迎訂閱!)

C/C++實戰進階(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/category_11931267.html

以多年的開發實戰為基礎,總結并講解一些的C/C++基礎與項目實戰進階內容,以圖文并茂的方式對相關知識點進行詳細地展開與闡述!專欄涉及了C/C++領域多個方面的內容,包括C++基礎及編程要點(模版泛型編程、STL容器及算法函數的使用等)、數據結構與算法、C++11及以上新特性(不僅看開源代碼會用到,日常編碼中也會用到部分新特性,面試時也會涉及到)、常用C++開源庫的介紹與使用、代碼分享(調用系統API、使用開源庫)、常用編程技術(動態庫、多線程、多進程、數據庫及網絡編程等)、軟件UI編程(Win32/duilib/QT/MFC)、C++軟件調試技術(排查軟件異常的手段與方法、分析C++軟件異常的基礎知識、常用軟件分析工具使用、實戰問題分析案例等)、設計模式、網絡基礎知識與網絡問題分析進階內容等。

專欄3:??

C++常用軟件分析工具從入門到精通案例集錦匯總(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/131405795

常用的C++軟件輔助分析工具有SPY++、PE工具、Dependency Walker、GDIView、Process Explorer、Process Monitor、API Monitor、Clumsy、Windbg、IDA Pro等,本專欄詳細介紹如何使用這些工具去巧妙地分析和解決日常工作中遇到的問題,很有實戰參考價值!

專欄4:???

VC++常用功能開發匯總(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/article/details/124272585

將10多年C++開發實踐中常用的功能,以高質量的代碼展現出來。這些常用的高質量規范代碼,可以直接拿到項目中使用,能有效地解決軟件開發過程中遇到的問題。

專欄5:?(本專欄涵蓋了C++多方面的內容,是當前重點打造的專欄,專欄文章已經更新到300多篇,持續更新中!歡迎訂閱!)

C++ 軟件開發從入門到實戰(專欄文章,持續更新中...)icon-default.png?t=O83Ahttps://blog.csdn.net/chenlycly/category_12695902.html

根據多年C++軟件開發實踐,詳細地總結了C/C++軟件開發相關技術實現細節,分享了大量的實戰案例,很有實戰參考價值。


1.3、Consistency

Consistency中文叫做"一致性"。意思是,寫操作之后的讀操作,必須返回該值。舉例來說,某條記錄是v0,用戶向G1發起一個寫操作,將其改為v1。接下來,用戶的讀操作就會得到v1。這就叫一致性。

問題是,用戶有可能向G2發起讀操作,由于G2的值沒有發生變化,因此返回的是v0。G1和G2讀操作的結果不一致,這就不滿足一致性了。

為了讓G2也能變為v1,就要在G1寫操作的時候,讓G1向G2發送一條消息,要求G2也改成v1

這樣的話,用戶向G2發起讀操作,也能得到v1。

1.4、Availability

Availability中文叫做"可用性",意思是只要收到用戶的請求,服務器就必須給出回應。用戶可以選擇向G1或G2發起讀操作。不管是哪臺服務器,只要收到請求,就必須告訴用戶,到底是v0還是v1,否則就不滿足可用性。

2、Kafka中的CAP機制

kafka是一個分布式的消息隊列系統,既然是一個分布式的系統,那么就一定滿足CAP定律,那么在kafka當中是如何遵循CAP定律的呢?kafka滿足CAP定律當中的哪兩個呢?

kafka滿足的是CAP定律當中的CA,其中Partitiontolerance通過的是一定的機制盡量的保證分區容錯性。

其中C表示的是數據一致性。A表示數據可用性。

kafka首先將數據寫入到不同的分區里面去,每個分區又可能有好多個副本,數據首先寫入到leader分區里面去,讀寫的操作都是與leader分區進行通信,保證了數據的一致性原則,也就是滿足了Consistency原則。

然后kafka通過分區副本機制,來保證了kafka當中數據的可用性。但是也存在另外一個問題,就是副本分區當中的數據與leader當中的數據存在差別的問題如何解決,這個就是Partitiontolerance的問題。

kafka為了解決Partitiontolerance的問題,使用了ISR的同步策略,來盡最大可能減少Partitiontolerance的問題。

每個leader會維護一個ISR(asetofin-syncreplicas,基本同步)列表。

ISR列表主要的作用就是決定哪些副本分區是可用的,也就是說可以將leader分區里面的數據同步到副本分區里面去,決定一個副本分區是否可用的條件有兩個:

  • replica.lag.time.max.ms=10000副本分區與主分區心跳時間延遲
  • replica.lag.max.messages=4000副本分區與主分區消息同步最大差

produce請求被認為完成時的確認值:request.required.acks=0。

  • ack=0:producer不等待broker同步完成的確認,繼續發送下一條(批)信息。
  • ack=1(默認):producer要等待leader成功收到數據并得到確認,才發送下一條message。
  • ack=-1:producer得到follower確認,才發送下一條數據。
    ?

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

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

相關文章

riscv架構下linux4.15實現early打印

在高版本linux6.12.7源碼中,early console介紹,可參考《riscv架構下linux6.12.7實現early打印》文章。 1 什么是early打印 適配內核到新的平臺,基本環境搭建好之后,首要的就是要調通串口,方便后面的信息打印。 正常流…

improve-gantt-elastic(vue2中甘特圖實現與引入)

1.前言 項目開發中需要使用甘特圖展示項目實施進度,左側為表格計劃,右側為圖表進度展示。wl-gantt-mater,dhtmlx嘗試使用過可拓展性受到限制。gantt-elastic相對簡單,可操作性強,基礎版本免費。 甘特圖(Gan…

力扣 全排列

回溯經典例題。 題目 通過回溯生成所有可能的排列。每次遞歸時,選擇一個數字,直到選滿所有數字,然后記錄當前排列,回到上層時移除最后選的數字并繼續選擇其他未選的數字。每次遞歸時,在 path 中添加一個新的數字&…

1/13+2

運算符重載 myString.h #ifndef MYSTRING_H #define MYSTRING_H #include <cstring> #include <iostream> using namespace std; class myString {private:char *str; //記錄c風格的字符串int size; //記錄字符串的實際長度int capacity; …

04.計算機體系三層結構與優化(操作系統、計算機網絡、)

3.計算機體系三層結構與優化&#xff08;day04&#xff09; 3.1 操作系統 內容概要&#xff1a; 操作系統的發展史&#xff1a;批處理系統》分時操作系統》unix>linux多道技術》&#xff08;進程、線程&#xff09;并發進程與線程相關概念任務運行的三種狀態&#xff1a;…

【HM-React】08. Layout模塊

基本結構和樣式reset 結構創建 實現步驟 打開 antd/Layout 布局組件文檔&#xff0c;找到示例&#xff1a;頂部-側邊布局-通欄拷貝示例代碼到我們的 Layout 頁面中分析并調整頁面布局 代碼實現 pages/Layout/index.js import { Layout, Menu, Popconfirm } from antd impor…

計算機視覺算法實戰——實時車輛檢測和分類(主頁有相關源碼)

?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連 ? ?個人主頁歡迎您的訪問 ?期待您的三連? ? ?????????????????? 1. 領域介紹?? 實時車輛檢測和分類是計算機視覺中的一個重要應用領域&#xff0c;旨在從視頻流或…

使用 selenium-webdriver 開發 Web 自動 UI 測試程序

優缺點 優點 有時候有可能一個改動導致其他的地方的功能失去效果&#xff0c;這樣使用 Web 自動 UI 測試程序可以快速的檢查并定位問題&#xff0c;節省大量的人工驗證時間 缺點 增加了維護成本&#xff0c;如果功能更新過快或者技術更新過快&#xff0c;維護成本也會隨之提高…

性能測試工具Jmeter分布式運行

性能測試工具JMeter的分布式執行是一種用于增強壓力測試能力的技術方案&#xff0c;它允許用戶通過多臺機器來共同完成同一個測試計劃的執行。這種方式特別適用于需要模擬成百上千甚至上萬用戶并發訪問的情況&#xff0c;當單臺機器由于硬件資源&#xff08;如CPU、內存、網絡I…

彌散張量分析開源軟件 DSI Studio 簡體中文漢化版可以下載了

網址&#xff1a; (63條消息) DSIStudio簡體中文漢化版(2022年7月)-算法與數據結構文檔類資源-CSDN文庫

移動云自研云原生數據庫入圍國采!

近日&#xff0c;中央國家機關2024年度事務型數據庫軟件框架協議聯合征集采購項目產品名單正式公布&#xff0c;移動云自主研發的云原生數據庫產品順利入圍。這一成就不僅彰顯了移動云在數據庫領域深耕多年造就的領先技術優勢&#xff0c;更標志著國家權威評審機構對移動云在數…

在vscode中使用R-1

參考我的上一篇博客&#xff1a; https://blog.csdn.net/weixin_62528784/article/details/145092632?spm1001.2014.3001.5501 這篇內容實際上就是上一篇博客的后續承接&#xff0c;既然都在vscode的jupyter中使用R了&#xff0c;實際上其實也能夠直接在vscode中原生使用R的編…

【Block總結】掩碼窗口自注意力 (M-WSA)

摘要 論文鏈接&#xff1a;https://arxiv.org/pdf/2404.07846 論文標題&#xff1a;Transformer-Based Blind-Spot Network for Self-Supervised Image Denoising Masked Window-Based Self-Attention (M-WSA) 是一種新穎的自注意力機制&#xff0c;旨在解決傳統自注意力方法在…

【Linux】統信UOS服務器安裝MySQL8.0(RPM)

目錄 一、下載安裝包 二、安裝MySQL 2.1hive適配 2.2ranger適配 3.2DolphinScheduler適配 一、下載安裝包 官網下載安裝包&#xff1a;MySQL :: MySQL Downloads 選擇社區版本下載 點擊MySQL Community Server 選擇對應系統的MySQL版本號 統信1060a 操作系統對應 redhat8…

小白:react antd 搭建框架關于 RangePicker DatePicker 時間組件使用記錄 2

文章目錄 一、 關于 RangePicker 組件返回的moment 方法示例 一、 關于 RangePicker 組件返回的moment 方法示例 moment方法中日后開發有用的方法如下&#xff1a; form.getFieldsValue().date[0].weeksInWeekYear(),form.getFieldsValue().date[0].zoneName(), form.getFiel…

Jenkins簡單的安裝運行

一、下載 官網下載&#xff1a;https://www.jenkins.io/download/ 清華大學開源軟件鏡像站&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/jenkins/ 官網資料豐富&#xff0c;介紹了各種平臺安裝以及下載。安裝簡單&#xff0c;按照說明來就行。下面我介紹一個非常簡單的…

【CSS】HTML頁面定位CSS - position 屬性 relative 、absolute、fixed 、sticky

目錄 relative 相對定位 absolute 絕對定位 fixed 固定定位 sticky 粘性定位 position&#xff1a;relative 、absolute、fixed 、sticky &#xff08;四選一&#xff09; top&#xff1a;距離上面的像素 bottom&#xff1a;距離底部的像素 left&#xff1a;距離左邊的像素…

網絡安全 | WAF防護開通流程與技術原理詳解

關注&#xff1a;CodingTechWork 引言 隨著互聯網安全形勢的日益嚴峻&#xff0c;Web應用防火墻&#xff08;WAF, Web Application Firewall&#xff09;逐漸成為網站和應用的標準防護措施。WAF能夠有效識別和防止如SQL注入、跨站腳本攻擊&#xff08;XSS&#xff09;、惡意流…

小結:路由器和交換機的指令對比

路由器和交換機的指令有一定的相似性&#xff0c;但也有明顯的區別。以下是兩者指令的對比和主要差異&#xff1a; 相似之處 基本操作 兩者都支持類似的基本管理命令&#xff0c;比如&#xff1a; 進入系統視圖&#xff1a;system-view查看當前配置&#xff1a;display current…

Ubuntu中雙擊自動運行shell腳本

方法1: 修改文件雙擊反應 參考: https://blog.csdn.net/miffywm/article/details/103382405 chmod x test.sh鼠標選中待執行文件&#xff0c;在窗口左上角edit菜單中選擇preference設計雙擊執行快捷鍵&#xff0c;如下圖&#xff1a; 方法2: 設置一個應用 參考: https://blo…