0

예 : amazon.com; 그들은 마이크로 서비스 아키텍처에 의존하고 아마도 주문과 지불은 별도의 마이크로 서비스이지만 아마존 닷컴에서 체크 아웃 주문을하면 마침내 주문 ID와 세부 사항을 볼 수 있습니다. 결과 일관성 접근 방식이 아니라면 무엇입니까? 어쩌면 2PC?마이크로 서비스 아키텍처에서 즉각적인 일관성을 유지하는 방법은 무엇입니까?

저는 제 질문을 일반화하고 있습니다. 궁극적 인 일관성이 비즈니스 트랜잭션 (최종 사용자는 트랜잭션 종료를 확인해야 함)에 적합하지만 별도의 마이크로 서비스는 의미가 있습니다 (예 : 주문 및 지불) 즉시 일관성을 처리하는 방법은 무엇입니까?

답변

2

크로스 서비스 트랜잭션 (원 자성)을 제공 할 수있는 몇 가지 기술이 있습니다. 2PC, Percolator의 트랜잭션 및 Sagas입니다.

Percolator's transactions에는 직렬 가능 격리 수준이 있습니다. 이들은 업계에서 잘 알려져 있습니다 (Amazon의 DynamoDB transaction library, CockroachDB database 및 Google의 Pecolator 시스템 자체 참조). 퍼크 레이터 거래의 step-by-step visualization은 어떻게 작동하는지 이해하는 데 도움이 될 수 있습니다.

사가 패턴은 8030 년대 후반에 Sagas 종이에 기술되었지만 마이크로 서비스의 증가와 관련성이 높아졌습니다. 영감에 대해 Applying the Saga Pattern 대화를 참조하십시오.

그러나 최종 일관성에 대해 언급 했으므로 모든 기술에서 개별 서비스를 선형화 (강력한 일관성)하고 비교 및 ​​설정을 지원해야한다는 사실을 알아야합니다.