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)
参考资料: