手记

项目开发中对事务的理解

事务的概念

介绍事务概念的文章很多, 这里不再重复, 只写一些在项目中应用事务的业务场景处理思路

事务的使用原则


  1. 不使用事务就不用事务;

  2. 事务中避免调用第三方服务接口, 包括其他的微服务接口, 尽量使用短事务, 降低单个事务占用数据库连接池的时间;

  3. 调用第三方服务接口是应该考虑本地数据状态的必然修改和第三方接口调用失败时的处理方案.

事务使用流程(调用第三方接口)

  1. 在调用第三方接口前悲观方式认为本次接口调用失败, 更新业务状态, 如果涉及多张表, 新建单独service处理多表的状态更新或者新增, 确保调用第三方接口前本地数据无法二次消费;

  2. 根据第三方调用结果使用业务数据表中的id更新业务状态, 此时除非系统中数据超过数据库的处理能力, 一般不会失败, 如果失败, 有前面的状态变更, 可以查询系统日志和第三方接口调用记录最终判断本次业务是否处理成功;

  3. 该方案的业务设计原则是不允许业务数据重复消费.


1人推荐
随时随地看视频
慕课网APP