莫大人

关于分布式事务的处理

在前面我们的售票例子中,乘客购票请求发出--》售票员收款入账--》售票员查询余票--》售票员操作出票 

对于后台售票窗口的处理流程为 售票员收款入账--》(售票员查询余票--》售票员操作出票--》系统余票更新这部分归结为出票吧),这将是一个完整的事务。

如果操作出票失败了,那么是要求售票员退回收款,冲销入账的。或者系统余票更新失败了我们也希望全部操作都回滚。

 

 

1.我们采用分布式服务治理框架 zookeeper ,分布式同步远程调用框架dubbo来实现

在流程上做控制,只有当收款与出票都完成的情况下,售票过程完成。

首先调用收款入账接口,入账成功则继续调用出票接口,如果出票异常,那么将发送冲销入账的接口进行入账冲销,并返还乘客票款。

很明显将增大工作量,写大量的回滚逻辑。

2.我们采用消息中间件,实现异步调用。同样也是需要些回滚逻辑

 

posted on 2017-08-07 14:50  莫大人  阅读(169)  评论(0编辑  收藏  举报

导航