0

例如amazon.com;他們依賴微服務架構,可能訂單和付款是單獨的微服務,但是當您在amazon.com上結賬時,您終於可以看到訂單ID和詳細信息。如果它不是最終的一致性方法,它是什麼?也許2PC?如何在微服務架構中實現即時一致性?

我在概括我的問題;如果最終一致性不是 適合於商業交易(最終用戶應該看到交易結果結束),但是單獨的微服務是有意義的(如訂單和支付) 如何處理即時一致性?

回答

2

有幾種技術可以提供跨服務交易(原子性):2PC,Percolator的交易和Sagas。

Percolator's transactions有可序列化的隔離級別。他們在業內知名,請參閱:亞馬遜的DynamoDB transaction library,CockroachDB database,以及谷歌的Pecolator系統本身。 Percolator交易的step-by-step visualization可能會幫助您瞭解它們的工作方式。

傳奇模式在80年代後期在Sagas論文中有所描述,但與微服務的興起更爲相關。請參閱Applying the Saga Pattern探討靈感。

但是,既然您提到了最終的一致性,所有這些技術都需要單獨的服務可線性化(強一致性)並支持比較和設置,這一點很重要。