互联网分布式事务解决方案

       由于互联网行业对数据的绝对一致性(二阶段提交等方式)要求并不是那么高,而是对快速响应要求较高,基于cap理论所以一般采用柔性事务进行解决。


一、最终一致性解决方案(eBay模式)

        一般实现方式是消息中间件异步通知:

互联网分布式事务解决方案

        可靠消息等一般由消息中间件进行保证,至少重复消息发送的情况可以有消息集群进行保证,

        但一般由服务端的幂等进行保证,解决方案一般有:

        1)、幂等校验   (在数据库中创建一张数据表,消息的id等全局唯一标识进行判断

        2)、通过日志表或状态锁进行判断

         

二、模式

        1)、查询模式

             提供一个接口,通过全局唯一标识查询执行的状态(并且该接口为衰弱查询方式)

        2)、补偿模式

            自动恢复:自动重试机制

            通知运营:人工补偿或人工冲正

            技术通知:监控、预警(修复数据)


        3)tcc (trying confirming canceling)事务模型(业务模型的封装)

            trying:事务操作一执行(并提供操作成功提交确认的接口和操作失败回退的接口)

            confirming:事务操作二执行

            canceling:若发生异常通知回退

           一般开源的tcc框架有 rcc-transaction 、bytetcc。


三、最大努力通知型

       如支付宝、微信的支付回调接口方式,同步或异步的形式。