微服务架构的事务问题
- 服务间调用操作的回滚
- 服务间调用失败的重试问题
微服务架构的事务问题解决
- 方法1:减少服务间调用
- 方法2:没有服务间调用,通过消息驱动调用服务
消息驱动的分布式事务实现
注意的问题
- 消息中间件需要支持事务
- 如何处理重试的消息
- 发生业务异常时回滚操作
系统错误的处理 - 方法1:将出错未处理的消息写到失败的队列,进行相应回滚操作
- 方法2:通过定时任务检查超时订单,对未完成的订单做自动回滚
- 方法3:保存出错消息,人工处理
实现锁票的安全性
- 利用@jmsListener设置一个消费者,不适用于多实例
- 利用事务和数据库锁的特性
- 分布式锁