采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好,假如有一个接口需要通过http调用服务A和服务B,这两个都需要操作数据库,服务A成功了,服务B失败了,那么是不是事务是不会回滚的,需要自己写补偿机制?
这个涉及到分布式事务问题,像这种分布式事务的数据一致性问题,也有很多经典的解决方案,可以去了解一下,只有结合业务需要权衡ACP原则,像CP强一致性要求比较高的,比较经典的 结合 二阶段提交+读写相等+raft同步的方式,完美解决强一致性问题,但是缺点就是效率低下,基本不会采纳;往往对数据实时性不高的数据一致性问题,更注重AP可用性原则,比较多的有 TCC设计原则,还有借助消息中间件的方式去做一个异步确保型的数据一致性,比较经典的实现就是借助RocketMq事务型消息的能力 去实现达到最终一致性的。
是的哦,这就属于分布式事务的范畴啦
如果是dubbo这种,RPC调用,是不是也会有这种问题
是的 跟通讯协议没有关系了,跨库业务都涉及到
登录后可查看更多问答,登录/注册
从开发到编排,快速,完整,深入的掌握微服务
1.9k 16
4.6k 14
980 14
2.3k 13
1.2k 10