原文地址:http://www.cnblogs.com/cloud_china/p/3799907.htmlhtml
摘要: 隨着雲計算的出現,出現了不少新的名詞,像彈性擴容,平緩遷移,資源隔離等。目前我就「共享型數據庫」作一下解釋,下面就以京東雲擎的雲數據庫爲例,給你們剖析什麼叫「共享性數據庫」。 數據庫
這個是我第一篇帖子,我首先自我介紹一下,我從事IT行業10年,在多年之前是一名架構師,如今在一家互聯網企業作產品經理,下面的僅僅是由於我的與行業一些從業人員交流獲得的心得以及總結,有不妥之處請見諒。安全
「共享型數據庫」是對比「獨享性數據庫」的一種數據庫類型,它是在雲計算出來以後的一種數據庫資源更節約的體現。京東雲擎的雲數據庫是一種共享性數據庫,而本身的機房裏服務器裏安裝的數據庫屬於獨享性數據庫。不少人不明白共享性數據庫的特色,那麼我接下來就簡單介紹一下。服務器
「獨享性數據庫」,故名思議,「獨享」就是本身的數據庫,在雲計算出來以前,咱們都應該叫作獨享性數據庫,就好比咱們有一起地(相似於一個Schema),本身在這塊兒地上修一棟房子(相似於咱們建立了一個數據庫),而後咱們在這棟房子裏任意使用房間或者裝修房間(相似於咱們能夠建立Table同樣)。架構
「共享型雲數據庫」是爲下降開發者成本而生,不少人在一塊兒共同使用這棟樓房,可是這棟樓房不是屬於您的,是屬於僱主的資產,意思就是你們在一塊兒使用一個數據庫,你有建立表的權限、修改表的權限,可是沒有建立數據庫或者修改數據庫的權限,由於這棟樓是你們的,不是你一我的的,而你,只是一個租戶。咱們在雲計算中把這類用戶叫作租戶。工具
"共享性數據庫」的租戶的房子比較便宜,甚至免費,是按需收費的。由於你的房間平時是用來存東西的,就相似於你的數據庫表是用來存數據的同樣,若是放在之前你使用獨享性數據庫,你本身買了一個雲數據庫,是一次性投入,比如你花費了一生的積蓄來買了一棟房子,可是你真的須要那麼房間來存你的東西或者糧食 ?也許你本身都不知道你的東西有多少個東西。共享性數據庫的誕生解決了這個問題,通常的狀況是你存多少東西,房東就收你多少的費用。這種就叫按需付費。這樣的平臺有不少,好比百度的BAE、新浪的SAE、京東JAE,目前BAE是按需收費、SAE是達到1G吧,就開始計費,具體不知道(好久沒有開發了);京東的JAE是25G之內免費,超過25G不知道狀況。 post
說一下京東雲擎的雲數據庫特色,由於他們的一個架構師之前是個人徒弟,因此仍是比較清楚的。京東的數據庫分爲獨享性數據庫和共享性兩種,可是在雲擎裏使用的共享性數據庫,由於雲擎是一個PaaS平臺,說到PaaS平臺可能又要說一天一晚上了,我這裏不說了,你們去百度Google吧。我只插一句,PaaS平臺的特色就是節約資源,按需分配,按照咱們以前的分析,因此雲擎使用了共享性數據庫。下面就簡單介紹一下其特色吧:性能
1. 租戶隔離。多個租戶共享同一數據庫實例必然須要一個有效的隔離方案,防止一個用戶的慢查詢請求或惡意請求影響其餘用戶訪問。這裏的隔離實現方式是經過JProxy層對用戶全部的訪問進行了攔截,並根據用戶訪問的數據表索引信息等,對用戶執行該請求所需資源進行預判,並攔截掉惡意的請求及影響其餘用戶的請求。同時爲了精確控制每一個用戶的資源使用,整個系統針對用戶使用的鏈接數,內存佔用容量,磁盤空間使用狀況,帶寬流量等都作了有效的記錄和監控並根據用戶的配額進行控制。雲計算
2. 集羣路由信息高一致性保障。總體集羣採用經典的弱中心化集羣結構,在知足集羣高性能的基礎上同時具有足夠的可控性,JManager管理整個集羣路由信息,並經過多個Slave避免單點故障,當路由變動時,JManager首先同步路由變動信息給本身的Slave,而後纔會同步全部的JProxy,避免路由變動時JManager掛掉致使路由不一致。url
3. 高可用保障。總體集羣全部節點無單點,用戶的數據庫會經過zookeeper作主從的高可用,若是用戶主庫掛掉,會自動切換至從庫,並從新綁定floating ip到從庫,不會影響對用戶的服務。(floating ip知道什麼意思,想作架構師的朋友能夠搜一下,這裏不作累述)
4. 用戶數據庫無縫升級擴容。當用戶的數據庫數據增加超過指定配額時,用戶能夠選擇升級數據庫,系統會自動根據資源池使用狀況將用戶數據庫遷移到比較空閒的實例上,遷移過程當中並不會影響用戶的服務。經過定時自動爲用戶數據庫作快照的方式,結合數據庫binlog同步工具,來幫助用戶實現增量備份,遷移的工做也是依賴於以上這些工具完成的。
5. 共享型數據庫基於安全方面考慮,經過jproxy對有潛在安全風險的數據庫操做語法進行了限制,不如不能使用Create database,剛纔提到了這棟房子除了您在用,別人也在用,你只有這幾個或者幾十個房間而已,你只能在這幾個或者幾十個房間裏瞎搞,不能去別人的房間胡來!
大概畫一個圖給你們:
今天就說這麼多了,你們有興趣本身去看看吧。
雲擎的雲數據庫網址是:http://jae.jd.com 感興趣的能夠看看。