6月27日,阿里雲宣佈正式開源基於MongoDB的容災和多活解決方案平臺--MongoShake(github地址),該系統能夠跨數據中心進行數據同步,最高處理QPS可達50萬左右,使得跨數據中心的高效的災備和多活業務成爲可能,解決了以前多個數據中心部署災備不靈活、單點可寫的問題,給業務帶來便利,減輕運維壓力,其相比於業內現有的方案具備較強的功能和性能方面的提高。git
同時,MongoShake是一個通用型平臺服務,做爲數據連通的橋樑,打通各個閉環節點的通道。經過MongoShake的訂閱消費,能夠靈活對接以適應不一樣場景,例如日誌訂閱、數據中心同步、監控審計等。其中,集羣數據同步做爲核心應用場景,可以靈活實現災備和多活的業務場景。github
實現災備、多活,解決多數據中同步兩大難題sql
在當前的數據庫系統生態中,大部分系統都支持多個節點實例間的數據同步機制,如Mysql Master/Slave主從同步,Redis AOF主從同步等,MongoDB更是支持3節點及以上的副本集同步,上述機制很好的支撐了一個邏輯單元的數據冗餘高可用。數據庫
跨邏輯單元,甚至跨單元、跨數據中心的數據同步,在業務層有時候就顯得很重要,它使得同城多機房的負載均衡,多機房的互備,甚至是異地多數據中心容災和多活成爲可能。因爲目前MongoDB副本集內置的主從同步對於這種業務場景有必定的侷限性,爲此,咱們開發了MongoShake系統,能夠應用在實例間同步,機房間、跨數據中心同步,知足災備和多活需求。負載均衡
MongoShake災備、多活部署運維
數據庫的多活和災備指的是數據庫在多個機房部署,互爲備份,能夠同時提供讀寫服務。目前MongoDB數據庫比較欠缺這樣的平臺,有些現有平臺能知足部分需求,可是在性能甚至功能上比較欠缺,爲此,咱們開源了咱們的MongoShake系統,可以較大程度上知足開發者和應用者的功能需求。爲了提升性能,咱們採用了多端拉取、並行執行、衝突檢測、異步優化等多種方式提升系統的性能,知足性能需求。功能方面,咱們支持對數據庫DML和DDL語言的同步,保證數據的正確性。異步