前面的文章,我们知道可以利用柔性事务来处理支付场景下的分布式事务问题,那么是不是所有业务需求都可以用柔性事务的方案来处理呢?答案是否定的,柔性事务需要满足一下条件才行。
接口的可查询操作
服务操作的可标识性
- 服务操作具有全局唯一标识,因为柔性事务需要多次操同一比数据。
- 可以使用业务单据号(如订单号)
- 或者使用系统分配的操作流水号(如:支付记录流水号)
- 或者使用操作资深的组合标识(如商户号+商户订单号)
操作有唯一性,确定的时间(约定以谁的时间为准)
2. 单笔查询
使用全局唯一的服务操作标识,查询操作执行结果
注意状态判断,小心"处理中"的状态
3. 批量查询
使用时间区段与(或)一组服务操作的标识,查询一批操作执行结果