上个月接手了一个跨库转账的需求。当时想,不就是保证多个数据库操作要么全成功要么全失败嘛,能有多难。
最初用的是TCC模式,每个服务都要实现try/confirm/cancel三个接口。开发量巨大,而且每次新增一个步骤,所有相关的补偿逻辑都要改。