sharding sphere
目录
sharding-sphere
兼容JDBC规范

常见接口:




如何阅读源码









微内核架构及实现



可参考dubbo spi的增强:
按需加载
增加扩展类的 IOC 能力
增加扩展类的 AOP 能力
具备动态选择扩展实现的能力
可以对扩展实现进行排序
提供扩展点的 Adaptive 能力
解析引擎









路由引擎











改写引擎


改写引擎在设计上使用了装饰器模式,完成了从逻辑SQL到目标SQL的改写过程。
应用场景:
- 自增主键
- 表名改写
- 数据脱敏
执行引擎




归并引擎




读写分离

分布式事务

public enum TransactionType {
LOCAL,//本地事务
XA, // XA事务,需数据库提供支持
BASE //柔性事务,如seata
}





JDBC规范本身并未提供事务管理器抽象,需自行实现事务管理器
JDBC使用事务的方式:
Connection conn = openConnection();
try {
// 关闭自动提交:
conn.setAutoCommit(false);
// 执行多条SQL语句:
insert(); update(); delete();
// 提交事务:
conn.commit();
} catch (SQLException e) {
// 回滚事务:
conn.rollback();
} finally {
conn.setAutoCommit(true);
conn.close();
}
sharding-sphere分布式事务使用方式:
@Transactional
@ShardingTransactionType(TransactionType.XA)//LOCAL,XA,BASE
数据脱敏



配置中心

注册中心
链路追踪






通过SPI机制在关键节点动态增加Hook以灵活增加功能(容器hook承载动态收集的SPI hook)
参考资料:
