spa*_*cus 4 distributed-transactions eventual-consistency microservices
例如 amazon.com;他们依赖于微服务架构,并且订单和付款可能是单独的微服务,但是当您在 amazon.com 上结帐订单时,您最终可以看到订单 ID 和详细信息。如果这不是最终一致性方法,那是什么?也许是2PC?
我正在概括我的问题;如果最终一致性不适合业务事务(最终用户应该看到事务结束的结果)但单独的微服务有意义(例如订单和付款)怎么办?如何处理即时一致性?
有几种技术可以提供跨服务事务(原子性):2PC、Percolator 的事务和 Sagas。
Percolator 的事务具有可序列化的隔离级别。它们在业界是众所周知的,参见:Amazon 的DynamoDB 事务库、CockroachDB 数据库,以及 Google 的 Pecolator 系统本身。Percolator 交易的逐步可视化可以帮助您了解它们的工作原理。
saga 模式在 80 年代末在Sagas论文中进行了描述,但随着微服务的兴起变得更加相关。请参阅应用 Saga 模式演讲来获取灵感。
但既然您提到了最终一致性,重要的是要注意所有技术都要求各个服务可线性化(强一致性)并支持比较和设置。
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |