dubbo分布式事务问题
dubbo分布式事务问题,我想了解下这块,我在用dubbo的时候没有发现有分布式事务问题。那么我想问下到底什么时候才会有分布式事务问题呢?求各位大佬指点。、
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
dubbo分布式事务问题,我想了解下这块,我在用dubbo的时候没有发现有分布式事务问题。那么我想问下到底什么时候才会有分布式事务问题呢?求各位大佬指点。、
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(13)
你好,这个我懂,因为是不同的数据源
比如你做了服务拆分,订单和产品分成了两个微服务,每个服务有自己的数据库,用户下单后,创建订单并减少库存,由于不是同一个数据库,就引出了分布式事务
但数据库没有呀,我发的代码就是在单数据库测试的,按表拆分但是表还在同一个数据库呀,它们用的是用一个数据源。
单数据库也有分布式事务问题 按表拆分服务 之间调用就会出现
@Override
public Long insertEntity( User user ) {
RED red = new RED();
red.setRedAmount(16);
redService.insertEntity(red);//rpc调用测试的服务(url:112.xx.xx.xx)
userService.del(1L);//rpc调用本地服务(url:127.0.0.1),这里面抛出异常
return null;
}
回复
回滚了?a作为一个远程的服务一旦提交成功,即使后面b的方法抛出异常了也不可能导致a回滚的
确实是回滚了,看下面的代码
回复
所以我就觉得奇怪,我的想法跟你差不多,但是我自己测试的时候确实回滚了,同一个数据库。
问:b.update()方法异常了,a.save()会回滚吗?同一个数据库
那这么还不如直接说是多数据源就会有分布式事务问题,如果是单个数据源的话是不存在这个问题!
涉及到多库操作,且有2个以上
感谢您的回复,目前我测试的没有多库,所以测试下来发现没有事务问题
你把业务组件分开项目写,每个组件有自己独立的数据库,组件与组件之间通信经过开放api接口来访问,这下你就要分布式事务了。