偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

冷飯熱炒:想成為架構師,你必須掌握的CAP細節(jié)

云計算 分布式
分布式系統(tǒng)中,數(shù)據(jù)從一個節(jié)點同步到其他節(jié)點需要時間(即使是毫秒級延遲),導致嚴格一致性(所有節(jié)點同時擁有相同數(shù)據(jù))在實踐中難以實現(xiàn)。

1. CAP理論關注的是數(shù)據(jù)而非整個系統(tǒng)

  • CAP理論的核心是針對分布式系統(tǒng)中數(shù)據(jù)的設計權衡,而不是整個系統(tǒng)統(tǒng)一選擇CP或AP。
  • 系統(tǒng)內部不同數(shù)據(jù)或操作場景可能需要不同的CAP策略:

示例用戶管理系統(tǒng)中,用戶賬號數(shù)據(jù)(如ID、密碼)通常選擇CP(強一致性),以確保安全性;用戶信息數(shù)據(jù)(如昵稱、簡介)可選擇AP(高可用性),允許短暫不一致。

如果整個系統(tǒng)統(tǒng)一選擇CP或AP,會導致某些場景需求無法滿足,設計失衡。

  • 架構師應根據(jù)數(shù)據(jù)類型和業(yè)務場景,將數(shù)據(jù)分類并分別選擇CP或AP策略,而不是對整個系統(tǒng)“一刀切”。

2. 一致性(C)的現(xiàn)實挑戰(zhàn)

  • 分布式系統(tǒng)中,數(shù)據(jù)從一個節(jié)點同步到其他節(jié)點需要時間(即使是毫秒級延遲),導致嚴格一致性(所有節(jié)點同時擁有相同數(shù)據(jù))在實踐中難以實現(xiàn)。
  • 嚴格一致性場景

對于強一致性要求高的業(yè)務(如用戶余額、商品庫存),理論上需要CP,但實際中因同步延遲,CP可能退化為CA(單一節(jié)點寫入,其他節(jié)點備份)。

這種場景下,分布式多點寫入難以實現(xiàn),系統(tǒng)可能需要犧牲分布式特性,采用主從架構。

  • 實際意義即使是CP系統(tǒng),也可能因延遲而短暫不一致,需通過日志或補償機制確保最終一致性。

3. 正常運行時可同時滿足CA

  • CAP理論的前提是網(wǎng)絡分區(qū)(P)發(fā)生時必須在C和A之間選擇,但在無分區(qū)時,系統(tǒng)可同時滿足一致性(C)和可用性(A)。
  • 實現(xiàn)方式

用戶賬號數(shù)據(jù):可通過消息隊列實現(xiàn)CA,保證強一致性,但實現(xiàn)復雜。

用戶信息數(shù)據(jù):可通過數(shù)據(jù)異步同步實現(xiàn)CA,簡單但一致性要求較低。

  • 架構設計時需考慮分區(qū)發(fā)生時的CP或AP選擇,同時優(yōu)化無分區(qū)時的CA實現(xiàn)。

4. “犧牲”不等于完全放棄

  • CAP理論中的“犧牲”(如放棄C或A)僅指分區(qū)期間無法保證該屬性,而非永遠放棄。
  • 分區(qū)時間通常較短(例如,99.99%可用性系統(tǒng)一年不可用時間僅約50分鐘),因此需為分區(qū)恢復做準備:

CP系統(tǒng)示例用戶賬號數(shù)據(jù)在分區(qū)時,節(jié)點1可繼續(xù)注冊新用戶,節(jié)點2返回錯誤(犧牲A)。節(jié)點1記錄未同步數(shù)據(jù)到日志,分區(qū)恢復后同步至節(jié)點2,恢復CA狀態(tài)。

AP系統(tǒng)示例用戶信息數(shù)據(jù)在分區(qū)時,節(jié)點1和節(jié)點2可獨立修改(如用戶愛好),分區(qū)恢復后通過規(guī)則(如最后寫入優(yōu)先)合并數(shù)據(jù),或人工介入解決沖突,達到最終一致性。

  • 分區(qū)期間的日志記錄和恢復機制是確保系統(tǒng)在分區(qū)后恢復CA的關鍵。

5. ACID與CAP的對比

  • ACID是數(shù)據(jù)庫事務的理論,包含:

原子性事務操作全完成或全不完成。

一致性事務前后數(shù)據(jù)完整性不被破壞。

隔離性并發(fā)事務不干擾,隔離級別包括未提交讀、提交讀、可重復讀、串行化。

持久性事務完成后數(shù)據(jù)持久保存。

  • ACID與CAP的區(qū)別

ACID的A(原子性)與CAP的A(可用性)含義不同。

ACID的C關注數(shù)據(jù)庫完整性(如約束條件),CAP的C關注分布式節(jié)點間數(shù)據(jù)一致性。

ACID適用于數(shù)據(jù)庫事務場景,CAP適用于分布式系統(tǒng)設計,二者關注點不同,類似關系數(shù)據(jù)庫和NoSQL的差異。

6. BASE理論作為CAP的延伸

  • BASE是對CAP中AP方案的補充,強調:

基本可用分區(qū)時允許損失部分可用性,優(yōu)先保證核心功能(如登錄優(yōu)于注冊)。

軟狀態(tài)允許系統(tǒng)存在中間狀態(tài)(數(shù)據(jù)不一致),不影響整體可用性。

最終一致性數(shù)據(jù)副本在一定時間后達到一致。

  • 與CAP的關系

BASE是對AP方案的細化,強調分區(qū)期間放棄一致性,但通過最終一致性在分區(qū)恢復后達成一致。

CP系統(tǒng)也可能實現(xiàn)最終一致性(因同步延遲),但“一定時間”較短(如毫秒級)。

  • 示例

微博系統(tǒng):用戶賬號數(shù)據(jù)需1分鐘內一致(登錄場景),新微博可容忍30分鐘不一致(用戶無感知)。

核心功能(如登錄)優(yōu)先級高于非核心功能(如注冊),需明確區(qū)分。

7. CAP理論中的延遲問題

  • CAP理論忽略了網(wǎng)絡延遲,但現(xiàn)實中延遲不可避免(即使毫秒級)。
  • 即使CP系統(tǒng),在數(shù)據(jù)同步的短暫時間內也會出現(xiàn)不一致,實際效果接近最終一致性。
  • AP系統(tǒng)在分區(qū)期間放棄一致性,但分區(qū)恢復后需通過機制(如日志、合并規(guī)則)達到最終一致性。

8. 設計電網(wǎng)網(wǎng)站的思考題

  • 問題

設計電網(wǎng)網(wǎng)站的架構,需考慮CAP理論。

  • 建議設計

核心數(shù)據(jù)(如電費賬單、交易記錄)選擇CP,確保一致性和分區(qū)容錯性,因賬單錯誤會導致嚴重后果。分區(qū)時可通過日志記錄未同步數(shù)據(jù),恢復后同步。

非核心數(shù)據(jù)(如用戶信息、公告)選擇AP,優(yōu)先可用性,允許短暫不一致,分區(qū)恢復后通過合并規(guī)則(如最后更新優(yōu)先)達成一致。

正常運行優(yōu)化CA實現(xiàn),核心數(shù)據(jù)用消息隊列,非核心數(shù)據(jù)用異步同步。

分區(qū)恢復記錄分區(qū)期間的操作日志,恢復后通過自動或人工合并恢復CA狀態(tài)。

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2009-06-13 11:48:57

廣域網(wǎng)優(yōu)化

2016-03-01 13:41:56

容器Docker

2021-01-29 08:33:39

JDK底層UUID

2023-03-17 16:45:57

2021-02-19 08:20:42

JWT網(wǎng)絡原理

2021-03-16 15:49:30

架構運維技術

2019-10-21 10:36:52

架構軟件服務器

2012-02-23 15:02:20

架構師介紹

2011-04-07 16:49:53

測試架構師架構師測試

2011-04-07 16:59:19

測試架構師架構師測試

2011-04-07 16:55:12

測試架構師架構師測試

2021-03-06 14:41:07

布隆過濾器算法

2011-04-07 16:20:24

軟件架構師架構師架構

2021-03-23 10:04:55

數(shù)據(jù)工程師工具數(shù)據(jù)分析

2017-10-31 12:45:55

程序員學習語言

2019-09-05 09:29:00

CAP理論分布式系統(tǒng)

2012-06-17 12:58:04

架構師架構

2020-10-15 08:41:53

工程師開發(fā)技術

2018-11-30 14:47:13

2012-06-08 10:12:08

架構師
點贊
收藏

51CTO技術棧公眾號