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

分布式系統中的數據復制

數據庫 其他數據庫
為了避免這種單點故障,我們可以使用另一個數據庫(最好是不同的數據庫實例)來存儲原始數據的副本(一般我們成為從庫)。現在如果原始數據庫(主庫)崩潰,我們可以將請求轉到從庫。

什么是數據復制?

數據復制是指將數據復制到一個或多個數據容器以確保可用性的過程。復制的數據通常存儲在不同的數據庫實例中,即使一個實例發生故障,我們也可以從其他實例獲取數據。

一種流行數據復制的實現架構是主從架構。

推薦博主開源的 H5 商城項目waynboot-mall,這是一套全部開源的微商城項目,包含三個項目:運營后臺、H5 商城前臺和服務端接口。實現了商城所需的首頁展示、商品分類、商品詳情、商品 sku、分詞搜索、購物車、結算下單、支付寶/微信支付、收單評論以及完善的后臺管理等一系列功能。技術上基于最新得 Springboot3.0、jdk17,整合了 MySql、Redis、RabbitMQ、ElasticSearch 等常用中間件。分模塊設計、簡潔易維護,歡迎大家點個 star、關注博主。

github 地址:https://github.com/wayn111/waynboot-mall

主從架構

為了理解這個架構,我們舉一個例子。

  • 我們有四個客戶端,每個客戶端都連接到一個負載均衡器。
  • 然后負載均衡器將請求分發到三個應用程序服務器。
  • 每臺服務器連接到一個數據庫實例。

你能注意到這里有什么問題嗎?

我們的數據庫存在單點故障。如果它崩潰了,我們的整個系統就會停止工作。

為了避免這種單點故障,我們可以使用另一個數據庫(最好是不同的數據庫實例)來存儲原始數據的副本(一般我們成為從庫)。現在如果原始數據庫(主庫)崩潰,我們可以將請求轉到從庫。

但是我們如何保持從庫與主庫同步呢?這有兩種方法。

同步復制數據

  • 在這種方法中,數據同時寫入主庫和從庫
  • 數據始終一致。即數據如果寫入主庫,它也會寫入從庫
  • 數據庫負載較高

異步復制數據

  • 在這種方法中,首先將數據寫入主庫,并定期將更新寫入從庫
  • 由于復制以固定間隔進行,因此存在數據丟失和不一致的可能性
  • 數據庫負載相對較低

這里我們的一般定義是收到寫請求的主庫數據庫是 master)。從庫被稱為 slaves。

主從架構主從架構

如上圖我們的主站也就是 Server2 維護事務日志。他會更新從站中(Server1)的數據,它發送命令,然后從站以相同的順序執行這些命令。

如果服務器向從站發送寫入請求會發生什么?

有兩種方法可以處理這種情況

  • 不允許對從站的寫請求,從站無法寫入數據庫,它只能去讀從庫數據。
  • 允許從站寫入數據。我們將允許從站寫入數據。然后從站將更改復制到主站。在這種情況下,從站就接替了主站的角色。所以不再是主從架構而是主主架構

主主架構的問題

網絡故障可能會導致主主架構中的數據不一致。

讓我們用一個例子來理解這一點,假設我們有兩個數據庫實例 A 和 B。

  • 兩人都是 master。
  • 它們之間的路由器出現故障。所以 A 認為 B 離線,B 認為 A 離線。
  • 他們有一個數據項 X,其值最初為 100。

現在用戶發送以下請求,

  • X 減去 20,該請求被路由到 A,此時 A 中 X 的值為 80。
  • X 減去 80,這個請求被路由到 B(因為都是 master,所以寫請求可以路由到任何數據庫)。現在 B 中 X 的值為 20。

由于存在通信故障,A 和 B 無法同步,它們具有不同的數據值,因此不一致。


  • 現在,如果用戶發出讀請求,他/她將獲得不同的值,具體取決于他/她將連接到的數據庫。

這個問題被稱為裂腦問題。

解決裂腦問題

解決裂腦問題解決裂腦問題

我們可以通過添加第三個節點(數據庫實例)來解決裂腦問題。

這里我們假設一個節點崩潰以及其他兩個節點之間的路由器崩潰的可能性極小。

讓我們考慮三個數據庫實例 A、B 和 C。

  • 如果 C 崩潰,A 和 B 是主庫并且它們是同步的。所以他們處于一致的狀態。當 C 在線時,他們可以讀取 A 或 B 的內容。
  • 如果 A 和 B 之間出現通信故障
  • 當 A 收到寫入請求時,它將其狀態傳播到 C。最初狀態為 S0,然后轉移到 Sx。所以現在 A 和 C 都有 Sx。
  • 當 B 收到寫入請求時,它將其狀態從 S0 移至 Sy。它嘗試將其狀態傳播到 C,但失敗,因為 B 的先前狀態不等于 C。現在 B 中止寫入請求并將其狀態更新為 Sx。現在 B 可以接受寫入請求并將更改傳播到 C。

這稱為分布式共識。多個節點就特定值達成一致。在這種情況下,A、B 和 C 在最終狀態上達成一致。

責任編輯:武曉燕 來源: waynblog
相關推薦

2010-05-12 17:03:30

Oracle復制技術

2023-05-12 08:23:03

分布式系統網絡

2023-11-07 12:00:05

分布式系統數據訪問

2022-07-18 10:29:33

數據分布式系統

2024-10-18 08:00:00

分布式系統背壓數據庫

2023-02-11 00:04:17

分布式系統安全

2018-12-14 10:06:22

緩存分布式系統

2023-05-29 14:07:00

Zuul網關系統

2022-08-29 08:40:00

數據模型

2023-09-06 10:33:44

2016-08-12 15:17:40

分布式

2024-07-05 08:26:54

2017-10-27 08:40:44

分布式存儲剪枝系統

2022-04-14 10:24:27

分布式系統性能

2023-10-26 18:10:43

分布式并行技術系統

2017-12-18 10:47:04

分布式存儲數據

2019-07-17 22:23:01

分布式系統負載均衡架構

2017-12-05 09:43:42

分布式系統核心

2023-04-26 08:01:09

分布式編譯系統

2019-06-19 15:40:06

分布式鎖RedisJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线永久看片免费的视频 | 中文字幕黄色大片 | 九九免费视频 | www.玖玖玖| 国产一二区在线 | 一级做受毛片免费大片 | 国产日韩精品在线 | 亚洲精品视频一区二区三区 | 色婷婷综合网站 | 国产激情免费视频 | 久久精品亚洲精品国产欧美 | 欧美成人激情 | 欧美专区在线 | 精品亚洲一区二区三区 | 精品国产一区二区国模嫣然 | 亚州毛片| 国产在线中文字幕 | 在线午夜 | 亚洲网站在线观看 | 中文字幕第100页 | 国产成人一区二区三区电影 | 亚洲精品无 | 激情综合五月 | 久99久视频 | 天天干天天插天天 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产在线精品一区二区三区 | 欧美中文 | 黄网免费 | 三级在线视频 | 国产精品久久久久久久久久免费看 | 久久天堂网 | 欧美日日| 成人在线免费网站 | 精品一二三区视频 | 四虎网站在线观看 | 久久国产精品视频 | www午夜视频 | 91看片网| 欧美日韩精品在线免费观看 | 国产精品99久久久久久久vr |