对于分布式事务,服务器主动询问发送方实现机制能不能详细讲解实现机制,尤其是发送方的处理
比如你购买会员:扣钱在本地mysql操作,然后要通知会员系统给用户发送会员
这个时候都有可能失败,所以kiteq的处理就是先发一个未提交的消息给kiteq,然后处理本地事务,本地事务处理成功就发送commit消息、如果处理失败就会提交rollback。如果本地事务处理时间比较长或者正好发送方挂掉了,那么服务端就会根据配置去回扫未提交的消息,并下发txack消息用于询问本地事务是否成功。这样客户端和服务端同时保证,未提交消息的最后确定的状态。
http://studygolang.com/articles/5069
http://blog.csdn.net/kimmking/article/details/43197665
http://www.roncoo.com/article/detail/124243