cobarclient icon indicating copy to clipboard operation
cobarclient copied to clipboard

cobar-client-1.0.4

Open wplatform opened this issue 12 years ago • 1 comments

粗略的看了一下代码,以下是觉得有疑惑的地方,希望能得到作者的解答: 1、CobarSqlMapClientTemplate.sqlMapClient.dataSource没有被加入MultipleDataSourcesTransactionManager管控中,如果这个数据源不在ICobarDataSourceService内声明(就像参考文档那样配置数据源),当路由到这个默认的数据源,事务还能完整吗?

2、基于HotSwappableTargetSource代理的数据源切换会对事务产生影吗?如一个事务中有两个操作,第一个操作在主库完成后主库挂了,第二个操作被切换到次库上,这样事务会有影响吗?

3、如果在这个基础上扩展一个支持读写分离的DataSourceDescriptor,也用HotSwappableTargetSource代理实现数据源切换,发现实现起来很吃力,还可能会有2中的问题。我也看了一下2.0的代码,shard好像也没支持这一部分。因为我现在正要实现这一步分的功能,作者研究这一块应该挺长时间了,希望能得到一些指点。

4、我觉得路由配置可以做的更简单,路由规则配置应该与sqlmap或namespace分离,sqlmap或namespace只需要绑定那个路由规则就可以了,因为多个sqlmap或namespace可以绑定一个路由规则。就像servlet写义与url-mapping的关系,是不是可以变的简单点?

wplatform avatar Nov 20 '13 12:11 wplatform

  1. 没纳入进来是因为这种情况是希望其走自己单独的事务, 尽量不要去踏坑 ;)
  2. 这块太jb复杂了,2.0里面去掉了就是这个原因,太复杂的东西不受待见,也不好控制, 建议不要用这个功能了,使用成熟的数据源实现吧;
  3. fail fast吧, 或者求助于特定的数据源实现;
  4. 没理解你什么意思, 给个配置的prototype实例看看,感觉你没有很好的考虑路有规则的粗细力度路由的支持覆盖;

fujohnwang avatar Dec 19 '13 02:12 fujohnwang