(注:這是我手繪的一個架構圖,不代表數據庫真實架構,只為說明清楚問題而繪制)

1)租戶隔離。多個租戶共享同一數據庫實例必然需要一個有效的隔離方案,防止一個用戶的慢查詢請求或惡意請求影響其他用戶訪問。這里的隔離實現(xiàn)方式是通過JProxy層對用戶所有的訪問進行了攔截,并根據用戶訪問的數據表索引信息等,對用戶執(zhí)行該請求所需資源進行預判,并攔截掉惡意的請求及影響其他用戶的請求。同時為了精確控制每個用戶的資源使用,整個系統(tǒng)針對用戶使用的連接數,內存占用容量,磁盤空間使用情況,帶寬流量等都做了有效的記錄和監(jiān)控并根據用戶的配額進行控制。

2)集群路由信息高一致性保障。整體集群采用經典的弱中心化集群結構,在滿足集群高性能的基礎上同時具備足夠的可控性,JManager管理整個集群路由信息,并通過多個Slave避免單點故障,當路由變更時,JManager首先同步路由變更信息給自己的Slave,然后才會同步所有的JProxy,避免路由變更時JManager掛掉導致路由不一致。

3)高可用保障。整體集群所有節(jié)點無單點,用戶的數據庫會通過zookeeper做主從的高可用,如果用戶主庫掛掉,會自動切換至從庫,并重新綁定floating ip到從庫,不會影響對用戶的服務。(floating ip知道什么意思,想做架構師的朋友可以搜一下,這里不做累述)

4)用戶數據庫無縫升級擴容。當用戶的數據庫數據增長超過指定配額時,用戶可以選擇升級數據庫,系統(tǒng)會自動根據資源池使用情況將用戶數據庫遷移到比較空閑的實例上,遷移過程中并不會影響用戶的服務。通過定時自動為用戶數據庫做快照的方式,結合數據庫binlog同步工具,來幫助用戶實現(xiàn)增量備份,遷移的工作也是依賴于以上這些工具完成的。

5)型數據庫基于安全方面考慮,通過jproxy對有潛在安全風險的數據庫操作語法進行了限制,不如不能使用Create database,剛才提到了這棟房子除了您在用,別人也在用,你只有這幾個或者幾十個房間而已,你只能在這幾個或者幾十個房間里瞎搞,不能去別人的房間胡來!

云計算出現(xiàn)以后,為企業(yè)、創(chuàng)業(yè)團隊、個人帶來了便利, 那個自建機房、購買或者租用服務器搭建環(huán)境、中間件、部署應用,搞定域名而浪費大量人力物力的時代,我相信在不久的未來可能會漸行漸遠; 按需付費、方便快捷的互聯(lián)網服務讓云平臺成為未來軟件服務市場的寵兒, 而共享性數據庫也會逐步體現(xiàn)其價值,迎接嶄新的明天,相關的人才需求也會緊隨其后。 預祝中國的云計算有廣大的發(fā)展空間,越來越多的人才為其服務!

分享到

redsenlin

相關推薦