自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

服務(wù)高可用數(shù)據(jù)高可靠 京東共享型云數(shù)據(jù)庫淺談

云計算
云數(shù)據(jù)庫服務(wù)是云平臺不可或缺的重要組成部分,它承載著用戶重要關(guān)系型數(shù)據(jù)落地,數(shù)據(jù)分拆,無縫擴(kuò)容等重要功能,而RDS(Relation Database Service)服務(wù)本身各家都有不同的實(shí)現(xiàn),本文嘗試分析京東共享型的云數(shù)據(jù)庫的一些特點(diǎn),架構(gòu)及技術(shù)實(shí)現(xiàn)相關(guān)的內(nèi)容。

云數(shù)據(jù)庫服務(wù)是云平臺不可或缺的重要組成部分,它承載著用戶重要關(guān)系型數(shù)據(jù)落地,數(shù)據(jù)分拆,無縫擴(kuò)容等重要功能,而RDS(Relation Database Service)服務(wù)本身各家都有不同的實(shí)現(xiàn),本文嘗試分析京東共享型的云數(shù)據(jù)庫的一些特點(diǎn),架構(gòu)及技術(shù)實(shí)現(xiàn)相關(guān)的內(nèi)容。

 
通常RDS服務(wù)提供商對每個用戶的數(shù)據(jù)庫申請會為其單獨(dú)分配一臺數(shù)據(jù)庫實(shí)例,通常這個實(shí)例也是單獨(dú)建立在一臺或者多臺虛擬機(jī)上的,這種服務(wù)提供方式可以提供相對高性能的解決方案,但是存在一個問題,如果為每個用戶的實(shí)例背后都是一個或者多個虛擬機(jī)的話,必然會導(dǎo)致總體成本的提高,而這種成本上的增加通常也不是必要的,因為大多數(shù)中小型的業(yè)務(wù)是完全可以跑在同一個數(shù)據(jù)庫實(shí)例里的。這樣也就可以幫助那些中小開發(fā)者們大大的節(jié)省了成本問題,最終做到一個月幾塊錢的創(chuàng)業(yè)成本。另外也會存在一部分業(yè)務(wù)數(shù)據(jù)量和訪問量都比較大,不適合同其他用戶一起跑在同一個數(shù)據(jù)庫實(shí)例里,這部分用戶就比較合適獨(dú)立一個數(shù)據(jù)庫的實(shí)例。京東云數(shù)據(jù)庫考慮到了這兩種不同的需求,所以單獨(dú)開發(fā)了共享型云數(shù)據(jù)庫平臺,獨(dú)享型數(shù)據(jù)庫平臺兩套系統(tǒng),同時又支持無縫地從一個平臺遷移到另一個平臺上。
 
共享型云數(shù)據(jù)庫最大的特點(diǎn)就是低成本,同時又不會犧牲數(shù)據(jù)庫的可用性和可靠性,即使很多個用戶共享同一個數(shù)據(jù)庫實(shí)例,每個用戶也都是有自己單獨(dú)獨(dú)立的備份,主從互備等支持。  這種方案的幾個技術(shù)上的關(guān)鍵點(diǎn)在于如何做到用戶資源的有效隔離,數(shù)據(jù)庫的平滑擴(kuò)容升級等。
 


京東共享型云數(shù)據(jù)庫架構(gòu)

 
1.Shared RDS API對外提供create/delete/describe等管理共享型數(shù)據(jù)庫的接口
 
2.對于創(chuàng)建數(shù)據(jù)庫Shared RDS API會根據(jù)DB資源池負(fù)載信息選擇一個適合的實(shí)例為用戶創(chuàng)建數(shù)據(jù)庫,并更新集群路由到JManager
 
3.JManager管理整個集群路由信息,收到的任何路由變更同步到JProxy路由節(jié)點(diǎn)
 
4.JProxy路由節(jié)點(diǎn)對外提供透明的MySQL代理服務(wù),根據(jù)路由信息將用戶請求發(fā)送到用戶所在的數(shù)據(jù)庫實(shí)例上
 
5.每個數(shù)據(jù)庫實(shí)例根據(jù)資源使用情況超過指定閾值,會由JTransfer模塊將數(shù)據(jù)遷移到空閑的實(shí)例上
 
6.Cron模塊定時通過RDS API動態(tài)為資源池增加空閑資源
 
此外,京東共享型的云數(shù)據(jù)庫做到了以下關(guān)鍵技術(shù)實(shí)現(xiàn):
 
1. 租戶隔離。多個租戶共享同一數(shù)據(jù)庫實(shí)例必然需要一個有效的隔離方案,防止一個用戶的慢查詢請求或惡意請求影響其他用戶訪問。這里的隔離實(shí)現(xiàn)方式是通過JProxy層對用戶所有的訪問進(jìn)行了攔截,并根據(jù)用戶訪問的數(shù)據(jù)表索引信息等,對用戶執(zhí)行該請求所需資源進(jìn)行預(yù)判,并攔截掉惡意的請求及影響其他用戶的請求。同時為了精確控制每個用戶的資源使用,整個系統(tǒng)針對用戶使用的連接數(shù),內(nèi)存占用容量,磁盤空間使用情況,帶寬流量等都做了有效的記錄和監(jiān)控并根據(jù)用戶的配額進(jìn)行控制。
 
2. 集群路由信息高一致性保障。整體集群采用經(jīng)典的弱中心化集群結(jié)構(gòu),在滿足集群高性能的基礎(chǔ)上同時具備足夠的可控性,JManager管理整個集群路由信息,并通過多個Slave避免單點(diǎn)故障,當(dāng)路由變更時,JManager首先同步路由變更信息給自己的Slave,然后才會同步所有的JProxy,避免路由變更時JManager掛掉導(dǎo)致路由不一致。
 
3. 高可用保障。整體集群所有節(jié)點(diǎn)無單點(diǎn),用戶的數(shù)據(jù)庫會通過zookeeper做主從的高可用,如果用戶主庫掛掉,會自動切換至從庫,并重新綁定floating ip到從庫,不會影響對用戶的服務(wù)
4. 用戶數(shù)據(jù)庫無縫升級擴(kuò)容。當(dāng)用戶的數(shù)據(jù)庫數(shù)據(jù)增長超過指定配額時,用戶可以選擇升級數(shù)據(jù)庫,系統(tǒng)會自動根據(jù)資源池使用情況將用戶數(shù)據(jù)庫遷移到比較空閑的實(shí)例上,遷移過程中并不會影響用戶的服務(wù)。通過定時自動為用戶數(shù)據(jù)庫做快照的方式,結(jié)合數(shù)據(jù)庫binlog同步工具,來幫助用戶實(shí)現(xiàn)增量備份,遷移的工作也是依賴于以上這些工具完成的。
 
共享型云數(shù)據(jù)庫是為降低開發(fā)者成本而生,同時提供服務(wù)高可用和數(shù)據(jù)高可靠的保障,這和京東云擎的服務(wù)對象是一致的。共享型云數(shù)據(jù)庫實(shí)現(xiàn)關(guān)鍵技術(shù)在于資源隔離,訪問控制及數(shù)據(jù)庫無縫擴(kuò)容升級等工作。對于創(chuàng)業(yè)初期數(shù)據(jù)量和訪問量都不大的業(yè)務(wù)開發(fā)者來說,共享型云數(shù)據(jù)庫是一個非常不錯的選擇。
 
責(zé)任編輯:張玉 來源: 京東云平臺開發(fā)者服務(wù)部研發(fā)總監(jiān)
相關(guān)推薦

2024-03-27 12:14:56

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

2017-05-12 09:11:41

云計算數(shù)據(jù)庫高可用

2024-09-13 08:59:20

2023-02-06 09:32:17

服務(wù)接口高可用

2021-07-07 14:20:15

高并發(fā)服務(wù)數(shù)據(jù)庫

2010-10-28 15:37:36

高可用架構(gòu)

2015-05-04 14:17:16

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

2009-11-12 09:39:05

高可用

2023-11-27 07:23:39

2023-02-27 08:37:52

2012-05-29 18:05:00

2021-01-21 10:23:43

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

2017-03-15 15:14:03

MySQL數(shù)據(jù)庫高可用性

2019-09-06 08:53:32

數(shù)據(jù)庫高可用容災(zāi)

2017-11-06 11:10:11

數(shù)據(jù)庫OracleMySQL

2025-01-15 10:53:54

2011-03-09 08:53:02

MySQL優(yōu)化集群

2015-03-20 16:17:24

云平臺共享型數(shù)據(jù)庫京東云擎

2019-05-10 15:30:18

數(shù)據(jù)庫主從復(fù)制MySQL
點(diǎn)贊
收藏

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