sharding-jdbc源碼學習筆記(一)----概覽

sharding-jdbc是一款發展很快的分庫分表框架,能夠替換tddl框架(分庫分表matrix部分沒開源)或者mycat中間件,出自噹噹的張亮大神,目前還在不停快速的發展中。git

源碼能夠從https://git.oschina.net/dangdangdotcom/sharding-jdbc下載,功能介紹以及模塊設計文檔參考官方文檔:http://dangdangdotcom.github.io/sharding-jdbc/00-overview/github

源碼分爲api, config, jdbc, hint, routing, parser, rewrite, executor, merger, keygen, metrixs幾個重點模塊,下面介紹一下各個模塊的主要功能:spring

1,api:給出編程方式配置數據源,分庫分表規則,hint方式強制路由api,讀寫分離數據源;這些類也能夠配置成spring bean。sql

2,config:分片屬性配置編程

3,jdbc:主要是對jdbc標準接口進行封裝(wrapper),包括connection, datasource, statement, preparedstatement,resultset。至關於替換標準的jdbc實現,在真實執行jdbc驅動接口前,作了分庫分表的邏輯和讀寫分離的邏輯。api

4,hint:主要是一個線程局部變量保持用戶指定的分片值。app

5,routing:動態路由的實現。包括hint路由和sql parser兩種方式框架

6,parser:解析sql,提取路由,sql改寫和結果歸併所須要的信息(查詢的字段,表,關聯表,關聯條件,查詢條件,排序字段,分組字段,分頁信息);分佈式

7,rewrite:改寫sql,在分庫分表狀況下,對錶名修改,分頁信息修改,增長衍生出來的查詢字段(order by, group by 方便後面結果合併排序和統計的時候用).net

8,executor:執行sql,能夠並行執行多個庫的sql

9,merger:結果歸併,order排序,group by的統計

10,keygen:分佈式id生成器

11,metrixs:度量

下面對重點模塊代碼進行解讀,主要是jdbc, routing, parser, rewrite, executor, merger這6個模塊。

相關文章
相關標籤/搜索