我:
mycat测试CRUD结果如下:
(1)mycat能实现insert,query,querylist
(2)mycat不能实现update,delete(参考:https://github.com/MyCATApache/Mycat-Server/issues/1704),但是现有代码直接连mysql的库是可以执行的。
解决思路:(1)解决mycat事务读问题 ;(2)调整update和delete的实现;(3)无解(除非去弄清楚源码)
另外:连接阿里的drds仍然出现这样的问题,证明阿里云的core和mycat是一样的。mycat近两年没有大的改动和维护,所以能查询的解决思路有限!
@谭总,我们是否仍然采用mycat作为我们多租户的方式实现,感觉后还会遇到很多的坑,而又缺少社区的支持!
TZong:
@杨传池 mycat不支持删除和更新?这么大的缺陷,为啥现在才发现啊,时间都耽误了不是很早就就做技术验证了嘛
TZong:
如果是动态数据源方案,是不是必须换Jpa?
我:
@TZong 中间件支持啊,是和我们代码实现结合起来不支持
我:
我老早发布了my cat环境和文档
我:
让去验证、没有人推动验证
TZong:
意思是必须加上事务才行?
我:
加了也不行
TZong:
到底啥问题啊
TZong:
我们代码有什么特殊之处
我:
jpa标准的
TZong:
说清楚点儿,什么是我们代码加上中间件不支持。我不理解
TZong:
是不支持jpa还是什么
我:
@TZong 你方便吗
我:
直接电话
TZong:
电话吧
我:
稍等,我打给你
我:
我马上到住处
我:
今天测试结果:
(1) delete操作:dao层的service实现类,BO层的service实现类必须加上事务注解@Transactional,而加在方法上是不行的;
(2)update操作:现有的update操作是全量更新,需要调整实现为部分字段更新。原因是分片字段不能作为更新操作
TZong:
@杨传池 是否可以只加dao层的事务?service层加事务不可行,会锁表的
我:
不行
我:
都要加才行
TZong:
为啥呀,这样等于是不可行了
TZong:
一定会锁表
我:
在测两天看看
我:
目前是这样
我:
今日mycat测试结果:
(1)@Transactional可以不用加到BO的service上,但必须加到Dao层的service上,加到方法上是无效的!
(2)测试了主要的BO API, 除update API不能使用外,其它API是可以使用的!
(3)仰杰去评估update改成部分字段更新,改变之后对现有业务的影响!
网友评论