一、背景
开发中有这样一个场景,客服业务需要接入在线能力,基于其他团队的IM底层能力构建业务层能力,也就是需要先调二方restful服务创建群聊,然后调用本地服务创建会话,并且创建会话依赖于二方服务返回的群聊信息...二、案例分析
今天我们要描述的是使用TransactionalEventListener来做业务补偿,TransactionalEventListener本质上是一个EventListener,依赖于Spring...,用时序图更清晰的分析一下其逻辑:
那事件事务监听器逻辑注册到事务生命周期成功了,什么时候触发呢?...,也用时序图来清晰的描述事务事件的触发时机和逻辑:
总结
我们本篇从使用和源码角度分别分析了TransactionalEventListener使用方式和实现原理,可以得出以下几个结论:
TransactionalEventListener...适用于在事务的生命周期中特定节点做一些前置逻辑和后置补偿
对于一个事务涉及到本地和二方服务调用的场景,并且本地业务的执行依赖二方服务的结果,在本地服务出现异常发生回滚的时候,可以使用事务事件监听来做逻辑解耦和数据补偿