支付寶是如何在分佈式環境下完爆數據庫壓力的

2018-04-22 14:52:38 admin

Zdal是支付寶自主研發的數據中間件產品,採用標準的JDBC規範,可以在分佈式環境下看上去像傳統數據庫一樣提供海量數據服務,是一種通用的分庫分錶數據庫訪問框架,解決單庫單表數據庫訪問壓力,Zdal主要提供分庫分錶,結果集合併,sql解析,數據庫failover動態切換等功能,提供網際網路金融行業的數據訪問層統一解決方案,目前已經在支付寶的交易,支付,會員,金融等大部分關鍵應用上使用,並且在2013年雙11大促中運行穩定。

 

▲系統目標

1.數據訪問路由,將針對數據的讀寫請求發送到最合適的地方。

2.數據存儲的自由擴展,不再受限於單台機器的容量瓶頸和速度瓶頸,平滑遷移。

3.使用zdal組件進行數據庫的拆分,搭建分佈式環境下的海量數據訪問平台。

4.實現mysql,oracle,DB2數據庫訪問能力。

 

【系統架構和領域模型】

▲系統整體架構

 

 

zdal組件主要有5部分組成:

1. Zdal-client:開發編程接口,實現jdbc的Datasource,Connection,Statement,PreparedStatement,ResultSet等接口,實現通用的jdbc-sql訪問,內部還實現讀庫重試,group數據源的選擇器,表名替換,sql執行器等功能。

2. Zdal-parser:支持oracle/mysql/db2等數據庫的sql語句解析,並且緩存。根據規則引擎提供的參數列表,在指定的sql中查找到需要的參數,然後返回拆分字段。

3. Zdal-rule:根據zdal-parser解析後的拆分字段值來確定邏輯庫和物理表名。

4. Zdal-datasource:數據庫連接的管理,支持mysql,oracle,db2數據庫的連接管理

5. Zdal-common:zdal組件所使用的一些公共組件類。

為您推薦