关于分布式事务的实现梳理
摘自: https://www.cnblogs.com/xiaoXuZhi/p/xyh_trans_distributed.html 关于分布式事务的实现梳理 关于分布式事务的实现梳理 场景描述 在实际开发过程中,往往会遇到微服务架构中(数据分区存储),用户的一个操作,会设计到多个模块的数据落地或者更新查找,并且每个模块数据都是存储在不同的数据库,并且业务要求还需要确保操作结果的一致性。比如,用户在下单时:首选需要落地订单数据,其次,需要落地:账单数据、日志数据、或者库存更新等等操作。首先我们想到的解决方式就是事务来实现,由于在不同库,所以需要涉及到分布式事务。 解决方案 为了达到上述要求,在实现上根据我的经验大概有如下3种实现方式: 其一、分布式事务 分布式事务就是采用微软提高的分布式事务机制实现,在实现效率上不是很理想,并且也不是符合微服务设计的单一功能原则,所以不是很建议使用。 其二、消息队列 消息队列是现在使用的比较多的解决方案,通过一些消息队列中间件, 实现逻辑解耦,异步实现,响应效率也大大提升。 其三、异步作业 异步作业的实现思路和消息队列类似,都是对操作的步骤的解耦,异步实现,但是在处理上有一定的延迟性,因为异步作业是周期性的执行,但是异步作业也是对消息队里的一个保障和补充。 在实际使用过程中