如果一个事务里面有比如说一些不支持事务的操作,比如 rpc 调用,es ,文件写入等不能回滚的操作。如果数据库写入失败要回滚,但是这些操作回滚不了怎么办?
1
vczyh Feb 23, 2024
一般来说一个事务只操作数据库,完成之后再操作其他的,为了防止后者失败,可以异步检查是否操作成功,失败的话补偿。
|
2
lifei6671 Feb 23, 2024
要么引入分布式事务。要么做最终数据一致性校验就行。根据业务的不同,看看是先入库再调用 RPC ,还是先调用 RPC 再入库。只要做好幂等性,上下游重试即可。
|