成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

框架篇:分布式理論CAP、BASE

開發 架構 分布式
隨著業務的拓展,功能越來越多。把所有的功能都放在同一個服務下,代碼混合交錯,造成維護困難,也容易造成某一小bug導致整個服務不可用。

[[403371]]

本文轉載自微信公眾號「潛行前行」,作者cscw 。轉載本文請聯系潛行前行公眾號。

前言

隨著業務的拓展,功能越來越多。把所有的功能都放在同一個服務下,代碼混合交錯,造成維護困難,也容易造成某一小bug導致整個服務不可用。因此我們會按業務功能會拆分成多個不同的服務(微服務的形成),多個服務組成的系統,有個響亮的名字:分布式系統;而系統中的服務狀態我們該怎么去管理,有什么相關的理論呢?

  • 分布式和集群
  • 數據庫事務
  • 分布式事務
  • 分布式數據一致性
  • CAP 理論
  • BASE理論

分布式和集群

分布式是指通過網絡連接的多個服務或組件,通過交換信息協作而形成的系統

集群是指同一種服務組件的多個實例形成的整體

這兩個概念并不完全沖突,分布式系統也可以是一個集群。zookeeper集群也是一種分布式系統,它的服務之間會互相通信協作

集群不是分布式系統的情況,比如多個經過負載均衡的HTTP服務器,它們之間不會互相通信,如果不帶上負載均衡的部分的話,則不能稱作分布式系統

數據庫事務

  • 事務是基于數據進行操作,需要保證事務的數據通常存儲在數據庫中,所以介紹到事務,就不得不介紹數據庫事務的 ACID 特性
  • 原子性(Atomicity),整個事務中的所有操作,要么全部完成,要么全部不完成,不可能停滯在中間某個環節
  • 一致性(Consistency),在事務開始之前和事務結束以后,數據庫數據的一致性約束沒有被破壞
  • 隔離性(Isolation),隔離性可以防止多個事務并發執行時由于交叉執行而導致數據的不一致
  • 持久性(Durability),事務處理結束后,對數據的修改就是永久的,即便系統故障也不會丟失

分布式事務

分布式系統一般由多個獨立的子系統組成,多個子系統通過網絡通信互相協作配合完成各個功能;這個協作過程需要保證各個系統的數據一致性,我們稱這種跨系統的事務為分布式事務

上面的場景會存在多種情況;庫存服務和訂單服務全部成功。或者庫存服務和訂單服務部分成功,而傳統的單機事務理論不再適用

分布式事務的難點

原子性:事務操作跨不同節點,當多個節點某一節點操作失敗時,需要保證多節點操作的要么什么都不做,要么都做

一致性:當發生網絡傳輸故障或者節點故障,節點間數據復制通道中斷,在進行事務操作時需要保證數據一致性

隔離性:在分布式事務控制中,可能會出現提交不同步的現象,會出現“部分已經提交”的事務

分布式數據一致性

ACID并不適合分布式事務,而分布式事務的難點涉及的問題,最終影響是導致數據出現不一致,因此在分布式系統會著重關注保證系統的一致性。

CAP理論

  • 前面介紹到的分布式事務的難點涉及的問題,最終影響是導致數據出現不一致,下面對分布式系統的一致性問題進行理論分析,后面將基于這些理論進行分布式方案的介紹(可用性和一致性的沖突:CAP理論)
  • 一致性(Consistence): 所有節點訪問最新相同的數據副本
  • 可用性(Availability): 非故障的節點在合理的時間內返回合理的響應(不是錯誤或者超時的響應)
  • 分區容錯性(Partition tolerance): 分布式系統出現網絡分區的時候,仍然能夠對外提供服務

當發生網絡分區的時候,如果我們要繼續服務,那么強一致性和可用性只能 2 選 1。也就是說當網絡分區之后 P 是前提,決定了 P 之后才有 C 和 A 的選擇。也就是說分區容錯性(Partition tolerance)我們是必須要實現的

為啥無法同時保證 CA 呢?

若系統出現“分區”,系統中的某個節點在進行寫操作。為了保證一致性C, 必須要禁止其他節點的讀寫操作,這就和 A 發生沖突了;如果為了保證A,其他節點的讀寫操作正常的話,那就無法保證數據一致性,和C沖突

CAP 實際應用案例

ZooKeeper保證的是CP。任何時刻對ZooKeeper的讀請求都能得到一致性的結果,但是ZooKeeper不保證每次請求的可用性比如在Leader選舉過程中或者半數以上的機器不可用的時候服務就是不可用的

Eureka保證的則是AP。Eureka在設計的時候就是優先保證A(可用性)。在 Eureka中不存在什么Leader節點,每個節點都是一樣的、平等的。因此 Eureka 不會像 ZooKeeper 那樣出現選舉過程中或者半數以上的機器不可用的時候服務就是不可用的情況。Eureka 保證即使大部分節點掛掉也不會影響正常提供服務,只要有一個節點是可用的就行了。只不過這個節點上的數據可能并不是最新的

BASE理論

BASE是Basically Available(基本可用) 、Soft-state(軟狀態) 和 Eventually Consistent(最終一致性)。BASE理論是對CAP中一致性(C)和可用性(A)權衡的結果

最終一致性是弱一致性的一個特例,系統會保證在一定時間內,能夠達到一個數據一致的狀態

基本可用

基本可用是指分布式系統在出現不可預知故障的時候,允許損失部分可用性;那什么又是允許損失部分可用性呢?

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

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

軟狀態

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

最終一致性

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

參考文章

CAP和BASE理論了解么?可以結合實際案例說下不?

分布式與集群的區別是什么?[1]

 

數據一致性問題[2]

 

責任編輯:武曉燕 來源: 潛行前行
相關推薦

2020-10-16 06:36:57

CapBase定理

2024-11-18 17:09:19

2021-03-11 07:27:15

CAPBASE分布式

2024-03-25 14:31:45

2023-09-21 10:47:29

分布式CAPBASE

2020-12-14 14:24:07

CAP分布式數據一致性

2021-06-28 14:45:07

分布式框架操作

2023-08-03 07:49:39

N1節點網絡

2017-03-14 08:57:10

CAP定理可用性

2018-06-08 09:10:49

CAPACELC存儲系統

2024-11-19 15:55:49

2009-06-12 11:42:28

EJB分布式

2018-06-20 10:42:47

分布式系統CAP

2021-08-16 15:40:04

分布式架構系統

2021-09-09 15:45:17

機器學習人工智能Ray

2023-06-26 00:14:28

Openjob分布式任務

2022-07-10 20:24:48

Seata分布式事務

2021-06-06 12:45:41

分布式CAPBASE

2021-12-13 11:07:10

鴻蒙HarmonyOS應用

2019-07-04 15:13:16

分布式緩存Redis
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕亚洲一区二区三区 | 91精品成人久久 | 亚洲国产一区二区视频 | 日本一二三区高清 | 亚洲热在线视频 | 91精品国产综合久久久久久 | 欧美专区日韩专区 | 九九热在线观看视频 | 中文字幕免费视频 | 91资源在线 | 欧美在线一区二区三区 | 草樱av| www,黄色,com | www.99热这里只有精品 | 97精品久久 | 欧美黑人又粗大 | 国产精品小视频在线观看 | 久久99精品国产 | 久久久视频在线 | 国外成人在线视频网站 | 特黄特色大片免费视频观看 | 日本一道本 | 国产亚洲精品综合一区 | 久草视 | 91成人在线| 国产视频一区二区在线观看 | 日韩精品在线视频 | 欧美日韩一区在线 | 国产一区二区三区四区区 | 国产成人jvid在线播放 | 亚洲黄色网址视频 | 国精产品一区一区三区免费完 | 亚洲综合热 | 欧美久久久久久久久中文字幕 | 国产精品成人一区 | 噜噜噜噜狠狠狠7777视频 | 狠狠操网站 | 日韩欧美国产精品 | 久久综合久久久 | 中文字幕第一页在线 | 91视频在线观看 |