两阶段提交协议应用场景,在网购应用中,用户付款后通常需要修改订单表的状态为已付款,同时要去库存表进行减库存操作,因为网购应用中通常都是以微服务形式进行的,也就是订单服务跟库存服务都是独立的,当然理想情况下订单表跟库存表都要更新成功,这两个独立的应用如何才能都同时更新成功或者都同时失败呢,这时候可以用两阶段提交协议思想做:
1,先更新订单表跟库存表,也就是预提交,precommit。然后协调器再根据返回结果判断是否都更新完毕,如果两个都为true,则真正commit,只要有任何一个不成功,则回滚,开源框架atomikos可以实现该场景,这里atomikos就是充当了协调者的角色,其核心原理就是把操作不同数据库的结果封装到内部类中,然后进行统一提交或者回滚操作
两阶段提交协议
最新推荐文章于 2024-06-06 15:19:03 发布