Seata(简称为Simple Extensible Autonomous Transaction Architecture)是一个开源的分布式事务解决方案。ShardingSphere是一套开源的数据库中间件解决方案,提供了数据分片(Sharding)、读写分离(Read-write Splitting)、分布式事务和数据库治理等功能。整合Seata和ShardingSphere可以实现在分布式环境中进行分片事务管理。
在整合Seata和ShardingSphere时,主要目的是使Seata可以管理ShardingSphere分片的数据源,以保证分布式事务的一致性。
重写部分代码,我只用了seata的事务注解,没有使用sharding的,我当时用的版本是这两个整合后seata找不到表主键,seata调用sharding查表结构的时候,sharding底层用的like表名,如果你对user 表操作,同时你还有以user_开头命名的其他表也会查询出来,user 表主键user_id , 在user_role这样的表中也有一个user_id,先取user表字段,在去user_role字段,这个时候user_id不是主键,导致写undo_log失败,此回答整理自钉群“Seata(分布式事务)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。