【Java】Base理論的核心思想和理論三要素

目錄

簡介

BASE 理論的核心思想

BASE 理論三要素

1. 基本可用

2. 軟狀態

3. 最終一致性

總結


簡介

BASEBasically Available(基本可用)Soft-state(軟狀態)Eventually Consistent(最終一致性) 三個短語的縮寫。BASE 理論是對 CAP 中一致性 C 和可用性 A 權衡的結果,其來源于對大規模互聯網系統分布式實踐的總結,是基于 CAP 定理逐步演化而來的,它大大降低了我們對系統的要求。

BASE 理論的核心思想

即使無法做到強一致性,但每個應用都可以根據自身業務特點,采用適當的方式來使系統達到最終一致性。

也就是犧牲數據的一致性來滿足系統的高可用性,系統中一部分數據不可用或者不一致時,仍需要保持系統整體“主要可用”。

BASE 理論本質上是對 CAP 的延伸和補充,更具體地說,是對 CAP 中 AP 方案的一個補充。

為什么這樣說呢?

CAP 理論這節我們也說過了:

如果系統沒有發生“分區”的話,節點間的網絡連接通信正常的話,也就不存在 P 了。這個時候,我們就可以同時保證 C 和 A 了。因此,如果系統發生“分區”,我們要考慮選擇 CP 還是 AP。如果系統沒有發生“分區”的話,我們要思考如何保證 CA 。

因此,AP 方案只是在系統發生分區的時候放棄一致性,而不是永遠放棄一致性。在分區故障恢復后,系統應該達到最終一致性。這一點其實就是 BASE 理論延伸的地方。

BASE 理論三要素

BASE理論三要素

1. 基本可用

基本可用是指分布式系統在出現不可預知故障的時候,允許損失部分可用性。但是,這絕不等價于系統不可用。

什么叫允許損失部分可用性呢?

  • 響應時間上的損失: 正常情況下,處理用戶請求需要 0.5s 返回結果,但是由于系統出現故障,處理用戶請求的時間變為 3 s。

  • 系統功能上的損失:正常情況下,用戶可以使用系統的全部功能,但是由于系統訪問量突然劇增,系統的部分非核心功能無法使用。

2. 軟狀態

軟狀態指允許系統中的數據存在中間狀態(CAP 理論中的數據不一致),并認為該中間狀態的存在不會影響系統的整體可用性,即允許系統在不同節點的數據副本之間進行數據同步的過程存在延時。

3. 最終一致性

最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步后,最終能夠達到一個一致的狀態。因此,最終一致性的本質是需要系統保證最終數據能夠達到一致,而不需要實時保證系統數據的強一致性。

分布式一致性的 3 種級別:

  1. 強一致性 :系統寫入了什么,讀出來的就是什么。

  2. 弱一致性 :不一定可以讀取到最新寫入的值,也不保證多少時間之后讀取到的數據是最新的,只是會盡量保證某個時刻達到數據一致的狀態。

  3. 最終一致性 :弱一致性的升級版,系統會保證在一定時間內達到數據一致的狀態。

業界比較推崇是最終一致性級別,但是某些對數據一致要求十分嚴格的場景比如銀行轉賬還是要保證強一致性。

總結

ACID 是數據庫事務完整性的理論,CAP 是分布式系統設計理論,BASE 是 CAP 理論中 AP 方案的延伸。

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

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

相關文章

深度強化學習系列【2】- 貝爾曼方程和馬爾可夫決策過程

引言: 一直想做點強化學習相關的內容,但是對于其原理一直不是太明了,相比于編程實現,懂得算法部分的機理與理論也是至關重要的。網上找的一些資料都在強調貝爾曼方程和馬爾可夫決策過程在強化學習中的作用,但是介紹都不夠充分。 另外,在知乎【1】上看到一個說法,說 強化學…

財報解讀:基本盤穩定后,聯想如何進一步搶占AI時代?

從2021年下半年開始,受諸多因素影響,消費電子行業始終處在承壓狀態,“不景氣”這一關鍵詞屢次被市場提及。 但寒氣沒有持續,可以看到,消費電子行業正在逐漸回暖。國金證券在今年1月的研報中就指出,從多方面…

【簡單模擬】第十一屆藍橋杯省賽第二場C++ B組 / C組《成績統計》(c++)

1.題目說明 小藍給學生們組織了一場考試,卷面總分為100 分,每個學生的得分都是一個 0 到 100 的整數。 如果得分至少是 60 分,則稱為及格。 如果得分至少為 85 分,則稱為優秀。 請計算及格率和優秀率,用百分數表示…

#WEB前端(CCS常用屬性,補充span、div)

1.實驗: 復合元素、行內元素、塊內元素、行內塊元素 2.IDE:VSCODE 3.記錄: span為行內元素:不可設置寬高,實際占用控件決定分布空間。 div為塊內元素:占滿整行,可以設置寬高 img為行內塊元…

Unity(第二十三部)導航

你可以使用 unity官方提供的 unity導航組件或第三方 unity導航組件,以實現游戲中角色或其他物體的導航。 unity導航組件通常具有多種導航模式,如飛行模式、步行模式、車輛模式等,可以根據不同的需求選擇合適的模式。同時,unity導…

2023年全國職業院校技能大賽中職組大數據應用與服務賽項題庫參考答案陸續更新中,敬請期待…

2023年全國職業院校技能大賽中職組大數據應用與服務賽項題庫參考答案陸續更新中,敬請期待… 武漢唯眾智創科技有限公司 2024 年 2 月 聯系人:辜渝儐13037102709 題號:試題01 模塊二:數據獲取與處理 (一)…

Ainx的全局配置

📕作者簡介: 過去日記,致力于Java、GoLang,Rust等多種編程語言,熱愛技術,喜歡游戲的博主。 📗本文收錄于Ainx系列,大家有興趣的可以看一看 📘相關專欄Rust初階教程、go語言基礎系列…

js中的閉包

理解 函數內部可以訪問其外函數中的作用域 作用 創建私有變量延長變量的聲明周期一般函數中的變量在函數返回之后就會被銷毀,但是閉包會保存使用的變量,即便是上下文被摧毀了,使用的變量依舊存在 閉包的用途 柯里化函數的目的就是在避免重復的調用變量案例 求一個長方形的…

ROS2 Python環境變量PYTHONPATH設置

文章目錄 引題解決方法方法一 將三方庫與pkg放在一起方法二 將三方庫放入pythonpath目錄 引題 ROS2在執行ros2 pkg create --build-type ament_python **創建python包時,有時候會涉及外部庫的導入,這里講解一下如何配置PYTHONPATH變量讓程序順利找到外部…

【S32DS報錯】-7-程序進入HardFault_Handler,無法正常運行

【S32K3_MCAL從入門到精通】合集: S32K3_MCAL從入門到精通https://blog.csdn.net/qfmzhu/category_12519033.html 問題背景: 在S32DS IDE中使用PEmicro(Multilink ACP,Multilink Universal,Multilink FX&#xff09…

【網站項目】182在線作業管理系統

🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。🌹贈送計算機畢業設計600個選題excel文件,幫助大學選題。贈送開題報告模板&#xff…

程序員職業迷宮:選擇你的道路,開啟技術之旅

在這個數字化飛速發展的時代,程序員已經成為了一個備受矚目的職業。他們就像是現代社會中的魔法師,用代碼搭建起一個又一個令人驚嘆的數字世界。然而,對于許多初入行的程序員來說,面對前端的花園、后端的洞穴、數據科學的密室&…

【Python】進階學習:pandas--describe()函數的使用介紹

🐍【Python】進階學習:pandas——describe()函數的使用介紹 🌈 個人主頁:高斯小哥 🔥 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&am…

繪圖機器 - 華為OD統一考試(C卷)

OD統一考試(C卷) 分值: 100分 題解: Java / Python / C 題目描述 繪圖機器的繪圖筆初始位置在原點(0, 0),機器啟動后其繪圖筆按下面規則繪制直線: 1)嘗試沿著橫向坐標軸…

小程序海報生成海報【vue】

文章目錄 1、創建海報的基本邏輯2、用canvas繪制文字3、繪制矩形4、繪制圓形5、繪制圓角矩形6、繪制圖片7、執行繪制8、完整的代碼 1、創建海報的基本邏輯 1、先創建dom元素 wrapperHeight是根據海報的內容計算出來海報的高度 <view class"preview-card-wrap" ta…

支持向量機 SVM | 線性可分:硬間隔模型公式推導

目錄 一. SVM的優越性二. SVM算法推導小節概念 在開始講述SVM算法之前&#xff0c;我們先來看一段定義&#xff1a; 支持向量機(Support VecorMachine, SVM)本身是一個二元分類算法&#xff0c;支持線性分類和非線性分類的分類應用&#xff0c;同時通過OvR或者OvO的方式可以應用…

長貴對趙本山說:你需要我們家大腳,我立馬給你配雙大鞋!

長貴對趙本山說&#xff1a;你需要我們家大腳&#xff0c;我立馬給你配雙大鞋&#xff01; --小品《鄉村愛情》&#xff08;中2&#xff09;的臺詞 表演者&#xff1a;趙本山 于月仙 王小利 唐鑒軍等 &#xff08;接上&#xff09; 哈哈哈 伊拉克啊 這地方也不產這玩意吧 …

Chat GPT:AI聊天機器人的革命性突破!

一、引言 近年來&#xff0c;人工智能&#xff08;AI&#xff09;技術的發展日新月異&#xff0c;其中最具代表性的成果之一便是Chat GPT。這款基于自然語言處理&#xff08;NLP&#xff09;技術的聊天機器人&#xff0c;以其高度智能、靈活多變的特點&#xff0c;迅速吸引了全…

筆記74:在SLAM建圖過程中,為什么要使用【障礙物點云配準算法】和【里程計估算算法】結合的方法

僅使用【障礙物點云配準算法】&#xff0c;很容易導致在一條長通道中&#xff0c;因為前后兩幀的雷達點云圖過于相似&#xff0c;導致特征匹配一直完全重合&#xff0c;使得機器人建圖一直停留在原地&#xff0c;但實體機器人早就沿著通道跑向遠端了&#xff1b; 使用Hector_ma…

(學習日記)2024.03.02:UCOSIII第四節:創建任務

寫在前面&#xff1a; 由于時間的不足與學習的碎片化&#xff0c;寫博客變得有些奢侈。 但是對于記錄學習&#xff08;忘了以后能快速復習&#xff09;的渴望一天天變得強烈。 既然如此 不如以天為單位&#xff0c;以時間為順序&#xff0c;僅僅將博客當做一個知識學習的目錄&a…