Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microservices 如何在微服务架构中实现即时一致性?_Microservices_Distributed Transactions_Eventual Consistency - Fatal编程技术网

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

Microservices 如何在微服务架构中实现即时一致性?,microservices,distributed-transactions,eventual-consistency,Microservices,Distributed Transactions,Eventual Consistency,例如amazon.com;他们依赖于微服务架构,订单和支付可能是独立的微服务,但当你在amazon.com上签出订单时,你最终可以看到订单id和详细信息。如果不是最终的一致性方法,那是什么?也许2便士 我在概括我的问题;如果最终的一致性不存在呢 适用于业务交易(最终用户应看到交易结束时的结果),但单独的微服务是有意义的(如订单和付款) 如何处理即时一致性?有几种技术可以提供跨服务事务(原子性):2PC、Percolator事务和Sagas 具有可序列化的隔离级别。他们在业界都很有名,见:亚马逊和

例如amazon.com;他们依赖于微服务架构,订单和支付可能是独立的微服务,但当你在amazon.com上签出订单时,你最终可以看到订单id和详细信息。如果不是最终的一致性方法,那是什么?也许2便士

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

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

具有可序列化的隔离级别。他们在业界都很有名,见:亚马逊和谷歌的Pecolator系统本身。Percolator的一些事务可能会帮助您了解它们是如何工作的

该文在80年代末描述了这一传奇模式,但随着微服务的兴起,这一模式变得更加相关。请看演讲获得灵感

但是,既然您提到了最终一致性,那么需要注意的是,所有这些技术都要求单个服务是可线性化的(强一致性),并支持比较和设置