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

數(shù)據(jù)庫(kù)高可用架構(gòu)了解一下

開發(fā) 前端
數(shù)據(jù)存儲(chǔ)高可用的方案本質(zhì)都是通過(guò)將數(shù)據(jù)復(fù)制到多個(gè)存儲(chǔ)設(shè)備,通過(guò)數(shù)據(jù)冗余的方式來(lái)實(shí)現(xiàn)高可用。常見的高可用架構(gòu)有主備、主從、主主、集群、分區(qū)等,接下來(lái)我們聊聊每種架構(gòu)的優(yōu)缺點(diǎn)。

 看多了應(yīng)用服務(wù)的高可用架構(gòu),我們來(lái)看看數(shù)據(jù)庫(kù)的高可用吧。

數(shù)據(jù)存儲(chǔ)高可用的方案本質(zhì)都是通過(guò)將數(shù)據(jù)復(fù)制到多個(gè)存儲(chǔ)設(shè)備,通過(guò)數(shù)據(jù)冗余的方式來(lái)實(shí)現(xiàn)高可用。常見的高可用架構(gòu)有主備、主從、主主、集群、分區(qū)等,接下來(lái)我們聊聊每種架構(gòu)的優(yōu)缺點(diǎn)。

主備架構(gòu)

1. 基本架構(gòu)拓?fù)鋱D如下

整體架構(gòu)簡(jiǎn)單,幾乎所有的數(shù)據(jù)庫(kù)都提供了主備復(fù)制的功能,例如Mysql、Oracle、MongoDB等。在這種架構(gòu)中備庫(kù)主要承擔(dān)數(shù)據(jù)備份的作用,不參與實(shí)際業(yè)務(wù)讀寫操作,如果把備機(jī)改成主機(jī)需要人工操作。

2. 優(yōu)缺點(diǎn)分析

  • 對(duì)于客戶端來(lái)說(shuō),不需要感知備機(jī)的存在,即使災(zāi)難恢復(fù)后,原來(lái)的備機(jī)被人工干預(yù)修改為主機(jī),客戶端只需要簡(jiǎn)單修改連接地址即可,應(yīng)用架構(gòu)不需要做任何改動(dòng);

  • 主機(jī)和備機(jī)只需要進(jìn)行數(shù)據(jù)復(fù)制,不需要進(jìn)行狀態(tài)判斷和主備切換這類復(fù)雜操作。

這種架構(gòu)的缺點(diǎn)也比較明顯:

  • 備機(jī)主要是用于數(shù)據(jù)備份,如果應(yīng)用架構(gòu)沒(méi)有讀寫分離設(shè)計(jì)時(shí)會(huì)造成成本浪費(fèi)

  • 故障后需要人工干預(yù),無(wú)法自動(dòng)恢復(fù),而人工處理效率又比較低,恢復(fù)過(guò)程也容易出錯(cuò)。

主從架構(gòu)

主從架構(gòu)與主備架構(gòu)只有一字之差,但是對(duì)于實(shí)際應(yīng)用架構(gòu)差距卻很大。在主備架構(gòu)中備庫(kù)不參與業(yè)務(wù)操作,而在主從架構(gòu)中從庫(kù)是需要參與業(yè)務(wù)操作的,應(yīng)用架構(gòu)需要做讀寫分離,將寫操作寫入主庫(kù),而讀操作從從庫(kù)讀。

1. 主從基本架構(gòu)拓?fù)鋱D如下

2.優(yōu)缺點(diǎn)分析

相比于主備架構(gòu),它有如下優(yōu)點(diǎn):

  • 在主庫(kù)故障時(shí),讀操作相關(guān)業(yè)務(wù)可以繼續(xù)運(yùn)行

  • 從庫(kù)對(duì)外提供讀能力,發(fā)揮了硬件的性能

  • 可以為不同的角色提供不同的從庫(kù)

缺點(diǎn):

  • 主從架構(gòu)中從庫(kù)需要提供讀業(yè)務(wù),如果主從復(fù)制延遲大,數(shù)據(jù)會(huì)出現(xiàn)不一致情況;

  • 應(yīng)用架構(gòu)需要做修改,一般會(huì)加入讀寫分離,復(fù)雜度比主備高;

  • 故障后需要人工干預(yù),無(wú)法自動(dòng)恢復(fù),而人工處理效率又比較低,恢復(fù)過(guò)程也容易出錯(cuò)。

主從切換

上面兩種架構(gòu)都存在兩個(gè)共同問(wèn)題:

  • 主庫(kù)故障后,無(wú)法進(jìn)行寫操作

  • 主庫(kù)出了問(wèn)題后需要人工干預(yù)才能將從庫(kù)切換到主庫(kù),而人工切換又可能出現(xiàn)不及時(shí)或者切換故障的問(wèn)題。

基于以上兩個(gè)問(wèn)題我們需要一個(gè)能自動(dòng)切換的架構(gòu),當(dāng)主庫(kù)出了故障后能自動(dòng)將從庫(kù)切換成主庫(kù),無(wú)需運(yùn)維人員干預(yù)。

要實(shí)現(xiàn)主從切換架構(gòu)必須要考慮一個(gè)關(guān)鍵點(diǎn):必須要有一個(gè)機(jī)制能監(jiān)測(cè)到數(shù)據(jù)庫(kù)節(jié)點(diǎn)的運(yùn)行狀態(tài),以此來(lái)決定是否切換。

這種架構(gòu)我們一般會(huì)引入一個(gè)第三方中介,數(shù)據(jù)庫(kù)節(jié)點(diǎn)定時(shí)向第三方中介匯報(bào)自己的狀態(tài)信息;或者第三方中介定時(shí)去數(shù)據(jù)庫(kù)節(jié)點(diǎn)拉取數(shù)據(jù)庫(kù)狀態(tài);

優(yōu)點(diǎn):

  • 解決了人工干預(yù)的問(wèn)題,大大減少了故障時(shí)間,一定程度上保護(hù)了運(yùn)維人員的人生安全 缺點(diǎn):

  • 架構(gòu)復(fù)雜,引入了第三方中介后又需要保證第三方中介的高可用。

這里推薦大家了解一下mysql的 MHA 架構(gòu),或者使用ZK、Keepalived自己搭建主從切換架構(gòu)。

主主架構(gòu)

主主架構(gòu)又叫主主復(fù)制,兩臺(tái)數(shù)據(jù)庫(kù)都是主庫(kù),互相將數(shù)據(jù)復(fù)制給對(duì)方,客戶端可以挑選任意一臺(tái)數(shù)據(jù)庫(kù)進(jìn)行讀寫操作。

相比于主從切換,主主架構(gòu)有如下優(yōu)點(diǎn):

  • 兩臺(tái)數(shù)據(jù)庫(kù)都是主庫(kù),不存在切換的概念

  • 客戶端無(wú)需區(qū)分不同角色的主機(jī),隨便將讀寫操作發(fā)給哪臺(tái)數(shù)據(jù)庫(kù)。

  • 架構(gòu)簡(jiǎn)單

但是允許向兩臺(tái)主數(shù)據(jù)庫(kù)寫入是一件很危險(xiǎn)的事:

  • AB兩臺(tái)數(shù)據(jù)庫(kù)采用自增長(zhǎng)主鍵,A庫(kù)插入用戶后id是1,B庫(kù)插入用戶后id也是1,數(shù)據(jù)沖突

  •  
    1. tb 
    2. update tb set col = col +1 
    3. update tb set col = col * 2 

以上,希望對(duì)你有所幫助!

責(zé)任編輯:張燕妮 來(lái)源: JAVA日知錄
相關(guān)推薦

2018-10-16 16:00:39

數(shù)據(jù)庫(kù)鎖舞MySQL

2011-03-09 08:53:02

MySQL優(yōu)化集群

2010-10-28 15:37:36

高可用架構(gòu)

2015-05-04 14:17:16

數(shù)據(jù)庫(kù)架構(gòu)高可用

2024-09-13 08:59:20

2024-03-27 12:14:56

數(shù)據(jù)庫(kù)高可用GDS

2023-11-27 07:23:39

2024-04-11 12:19:01

Rust數(shù)據(jù)類型

2025-01-15 10:53:54

2013-09-13 09:31:09

MongoDBZardosht KaTokutek

2020-03-01 17:53:38

Excel大數(shù)據(jù)微軟

2018-09-10 15:55:01

數(shù)據(jù)庫(kù)UCloud架構(gòu)設(shè)計(jì)

2022-03-24 13:36:18

Java悲觀鎖樂(lè)觀鎖

2020-12-10 08:44:35

WebSocket輪詢Comet

2018-03-21 09:08:06

超融合架構(gòu)本質(zhì)

2023-01-05 07:52:36

高可用架構(gòu)消息隊(duì)列

2023-12-05 09:31:46

數(shù)據(jù)庫(kù)架構(gòu)

2017-07-03 15:32:49

數(shù)據(jù)庫(kù)MySQL架構(gòu)

2017-12-29 08:54:58

高可用數(shù)據(jù)庫(kù)架構(gòu)

2024-02-21 07:57:16

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)