9장. Saga EIP
9.1. 개요
사가 EIP는 Camel 경로에서 일련의 관련 작업을 정의하는 방법을 제공하여 Camel 경로에 성공적으로 완료되거나 실행되지 않거나 보완할 수 있습니다. Privatega 구현은 전 세계적으로 일관된 결과로 모든 전송을 사용하여 통신하는 분산 서비스를 조정합니다. 사가 EIP는 다른 참여 서비스의 상태가 사가의 끝에만 일관성이 보장되고 중간 단계가 아닌 클래식 ACID 분산 (XA) 트랜잭션과 다릅니다.
saga EIP는 분산 트랜잭션 사용이 권장되지 않는 사용 사례에 적합합니다. 예를 들어, saga에 참여하는 서비스는 클래식 데이터베이스 또는 NoSQL 비 데이터 저장소와 같은 모든 종류의 데이터 저장소를 사용할 수 있습니다. 또한 서비스와 함께 트랜잭션 로그를 저장할 필요가 없으므로 상태 비저장 클라우드 서비스에서 사용하는 데 적합합니다. 또한 saga EIP는 트랜잭션과 다른 데이터베이스 수준 잠금을 사용하지 않기 때문에 약간의 시간 내에 완료할 필요가 없습니다. 따라서 몇 초에서 며칠까지 더 긴 기간 동안 지속될 수 있습니다.
sa EIP는 데이터에 대한 잠금을 사용하지 않습니다. 대신 이들은 흐름 실행 전에 존재하는 상태를 복원하기 위해 표준 흐름에 오류가 발생할 때 실행해야 하는 동작입니다. 조정 작업은 Java 또는 XML DSL을 사용하여 Camel 경로에 선언할 수 있으며 필요한 경우에만 Camel에서 호출할 수 있습니다(오류로 인해 saga가 취소되는 경우).