介绍
在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。在不同的业务场景下,解决方案会有所差异,常见的方式有:
-
阻塞式重试;
-
2PC、3PC 传统事务;
-
使用队列,后台异步处理;
-
TCC 补偿事务;
-
本地消息表(异步确保);
-
MQ 事务。
本文侧重于其他几项,关于 2PC、3PC 传统事务,网上资料已经非常多了,这里不多做重复。
在分布式系统、微服务架构大行其道的今天,服务间互相调用出现失败已经成为常态。如何处理异常,如何保证数据一致性,成为微服务设计过程中,绕不开的一个难题。在不同的业务场景下,解决方案会有所差异,常见的方式有:
阻塞式重试;
2PC、3PC 传统事务;
使用队列,后台异步处理;
TCC 补偿事务;
本地消息表(异步确保);
MQ 事务。
本文侧重于其他几项,关于 2PC、3PC 传统事务,网上资料已经非常多了,这里不多做重复。