1 概述java
Sharding-JDBC是一個開源的適用於微服務的分佈式數據訪問基礎類庫,它始終以雲原生的基礎開發套件爲目標。他定位爲輕量級java框架,使用客戶端直連數據庫,以jar包形式提供服務,未使用中間層,無需額外部署,無其餘依賴,DBA也無需改變原有的運維方式,可理解爲加強版的JDBC驅動,舊代碼遷移成本幾乎爲零。數據庫
2 功能列表框架
2.1 分庫分表
- SQL解析功能完善,支持聚合,分組,排序,LIMIT,TOP等查詢,而且支持級聯表以及笛卡爾積的表查詢
- 支持內、外鏈接查詢
- 分片策略靈活,可支持=,BETWEEN,IN等多維度分片,也可支持多分片鍵共用,以及自定義分片策略
- 基於Hint的強制分庫分表路由
2.2 讀寫分離
- 一主多從的讀寫分離配置,可配合分庫分表使用
- 基於Hint的強制主庫路由
2.3 柔性事務
2.4 分佈式主鍵
2.5 兼容性
- 可適用於任何基於java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC
- 可基於任何第三方的數據庫鏈接池,如:DBCP, C3P0, BoneCP, Druid等
- 理論上可支持任意實現JDBC規範的數據庫。目前支持MySQL,Oracle,SQLServer和PostgreSQL
2.6 靈活多樣的配置
- Java
- Spring命名空間
- YAML
- Inline表達式