Sharding-JDBC是噹噹應用框架ddframe中,從關係型數據庫模塊dd-rdb中分離出來的數據庫水平分片框架,實現透明化數據庫分庫分表訪問。Sharding-JDBC是繼dubbox和elastic-job以後,ddframe系列開源的第3個項目。
Sharding-JDBC直接封裝JDBC協議,能夠理解爲加強版的JDBC驅動,舊代碼遷移成本幾乎爲零。
Sharding-JDBC定位爲輕量級java框架,使用客戶端直連數據庫,以jar包形式提供服務,無proxy代理層,無需額外部署,無其餘依賴,DBA也無需改變原有的運維方式。java
主要包括如下特色:git
架構圖github
與常見開源產品對比
這裏僅列出目前中止更新,但仍然在數據庫分片領域很是有影響力的幾個項目。數據庫
功能 | Cobar | Cobar-client | TDDL | Sharding-JDBC |
分庫 | 有 | 有 | 未開源 | 有 |
分表 | 無 | 無 | 未開源 | 有 |
中間層 | 是 | 否 | 否 | 否 |
ORM支持 | 任意 | 僅MyBatis | 任意 | 任意 |
數據庫支持 | 僅MySQL | 任意 | 任意 | 任意 |
異構語言 | 可 | 僅Java | 僅Java | 僅Java |
外部依賴 | 無 | 無 | Diamond | 無 |
Sharding-JDBC嚴格遵循Apache 2.0許可證的要求。測試覆蓋率95%,目前已部署至maven中央倉庫。可以使用如下座標引用:架構
<groupId>com.dangdang</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>1.0.0</version>
Sharding-JDBC將保持持續更新,後續會完善讀寫分離、柔性分佈式事務和高可用等相關功能。框架
Sharding-JDBC項目GitHub地址:https://github.com/dangdangdotcom/sharding-jdbc運維