微服务架构如何实现即时一致性?

How to achieve immediate consistency in microservice architecture?

例如amazon.com;他们依赖于微服务架构,订单和支付可能是单独的微服务,但是当您在 amazon.com 上结帐订单时,您最终可以看到订单 ID 和 details.If 这不是最终一致性方法,它是什么?也许是 2PC?

我正在概括我的问题;如果不是最终一致性怎么办 适用于业务交易(最终用户应该看到交易的结果)但单独的微服务是有意义的(如订单和支付) 如何处理即时一致性?

有几种技术可以提供跨服务事务(原子性):2PC、Percolator 的事务和 Sagas。

Percolator's transactions have serializable isolation level. They are known in the industry, see: Amazon's DynamoDB transaction library, CockroachDB database, and the Google's Pecolator system itself. A step-by-step visualization 的 Percolator 事务可以帮助您了解它们的工作原理。

saga 模式是在 80 年代后期的 Sagas paper but became more relevant with the rise of microservices. Please see the Applying the Saga Pattern 演讲中描述的。

但是既然你提到了最终一致性,重要的是要注意所有的技术都需要单独的服务是可线性化的(强一致性)并支持比较和设置。