cobarclient 源码分析

cobarclient 要解决什么问题?

互联网架构中很多情况下使用的是spring+ibatis的架构,实际中使用spring提供的模板sqlmapClientTemplate来进行数据库的CRUD操作,,随着互联网企业越来越多的数据,在数据库容量规划设计的时候会考虑按照业务来进行垂直拆分数据库,或者水平来拆分表,主要是考虑到了数据库容量规划和IO性能等,那么问题来了, sqlmapClientTemplate只能处理单数据源的问题,对于多数据源无能为力,于是alibaba就搞出来这么一个玩意,主要为了实现

1.多数据源之间路由查找
2.多数据源事务管理

基本原理是什么?

corbarclient 2.2版本使用的模板是MysdalSqlMapClientTemplate, 继承了sqlmapClientTemplate,只是简单的对sqlmapClientTemplate的功能进行增强,他内部为每一个数据源新建一个对应的sqlmapClientTemplate,并且持有一个路由Router来根据sqlmapId、shardingExpression来决定使用哪个shard

事务管理

cobarclient为了考虑性能,并没有采取XA事务的两段式提交,它使用的是一段式提交(Best efforts 1pc pattern)

参考文档:http://afoo.me/references/cobarclient/zh/index.html

你可能感兴趣的:(cobarclient 源码分析)