天天看點

淺談OceanBase系統整體架構

OceanBase的整體架構如下圖所示。

淺談OceanBase系統整體架構
OceanBase由如下幾個部分組成:

  • 用戶端:使用者使用OccanBase的方式和MySQL資料庫完全相同,支援JDBC、C用戶端通路,等等。基于MySQL資料庫開發的應用程式、工具能夠直接遷移到OceanBase。
  • RootServer:管理叢集中的所有伺服器,子表(tablet)資料分布以及副本管理。RootServer一般為一主一備,主備之間資料強同步。
  • UpdateServer:存儲OccanBase系統的增量更新資料。UpdateServer一般為一主一備,主備之間可以配置不同的同步模式。部署時,UpdateServer程序和RootServer 程序往往共用實體伺服器。
  • ChunkServer:存儲OccanBase系統的基線資料。基線資料一般存儲兩份或者三份,可配置。
  • MergeServer:接收并解析使用者的sQL請求,經過詞法分析、文法分析、查詢優化等一系列操作後轉發給相應的ChunkServer或者UpdateServer。如果請求的資料分布在多台ChunkServer上,MergeServer 還需要對多台ChunkServer傳回的結果進行合并。用戶端和MergeScrver之間采用原生的MySQL通信協定,MySQL用戶端可以直接通路MergeServer。

OceanBase支援部署多個機房,每個機房部署一個包含RootServer、MergeServer、ChunkServer以及UpdateServer 的完整OceanBase叢集,每個叢集由各自的RootServer負責資料劃分、負載均衡、叢集伺服器管理等操作,叢集之間資料同步通過主叢集的主UpdateSever往備叢集同步增量更新記錄檔實作。用戶端配置了多個叢集的RootServer位址清單,使用者可以設定每個叢集的流量配置設定比例,用戶端根據這個比例将讀寫操作發往不同的叢集。