阿里雲正式開源基於MongoDB的跨數據中心數據同步平台:MongoShake

近日,阿里雲宣佈正式開源基於MongoDB的MongoShake數據同步平臺,該系統可以跨數據中心進行數據同步,最高處理QPS可達50萬左右,使得跨數據中心的高效的災備和多活業務成為可能,解決了之前多個數據中心部署災備不靈活、單點可寫的問題,給業務帶來便利,減輕運維壓力,其相比於業內現有的方案具有較強的功能和性能方面的提升。

同時,MongoShake是一個通用型平臺服務,作為數據連通的橋樑,打通各個閉環節點的通道。通過MongoShake的訂閱消費,可以靈活對接以適應不同場景,例如日誌訂閱、數據中心同步、監控審計等。其中,集群數據同步作為核心應用場景,能夠靈活實現災備和多活的業務場景。

實現災備、多活,解決多數據中同步兩大難題

在當前的數據庫系統生態中,大部分系統都支持多個節點實例間的數據同步機制,如Mysql Master/Slave主從同步,Redis AOF主從同步等,MongoDB更是支持3節點及以上的副本集同步,上述機制很好的支撐了一個邏輯單元的數據冗餘高可用。

跨邏輯單元,甚至跨單元、跨數據中心的數據同步,在業務層有時候就顯得很重要,它使得同城多機房的負載均衡,多機房的互備,甚至是異地多數據中心容災和多活成為可能。由於目前MongoDB副本集內置的主從同步對於這種業務場景有一定的侷限性,為此,我們開發了MongoShake系統,可以應用在實例間同步,機房間、跨數據中心同步,滿足災備和多活需求。

阿里雲正式開源基於MongoDB的跨數據中心數據同步平臺:MongoShake

災備、多活部署實例

數據庫的多活和災備指的是數據庫在多個機房部署,互為備份,可以同時提供讀寫服務。目前MongoDB數據庫比較欠缺這樣的平臺,有些現有平臺能滿足部分需求,但是在性能甚至功能上比較欠缺,為此,我們開源了我們的MongoShake系統,能夠較大程度上滿足開發者和應用者的功能需求。為了提高性能,我們採用了多端拉取、並行執行、衝突檢測、異步優化等多種方式提高系統的性能,滿足性能需求。功能方面,我們支持對數據庫DML和DDL語言的同步,保證數據的正確性。

阿里雲正式開源基於MongoDB的跨數據中心數據同步平臺:MongoShake

MongoShake數據流示例

MongoShake早已在阿里巴巴內部經歷千錘百煉,目前已經在高德、天貓、淘寶等廣泛應用。

歷經多年的技術沉澱,阿里雲數據庫團隊不斷對MongoDB產品進行打磨,MongoShake作為MongoDB核心的生態化產品,致力於更好的為阿里雲用戶提供服務,也為廣大開源用戶提供服務。MongoShake的開源絕對不是發展的終點,我們會不斷對產品進行迭代優化,也歡迎大家一起加入,共同維護MongoDB生態,推出更好的服務。


分享到:


相關文章: