Saga 모드 정보

개요


마이크로서비스에서는 시스템을 이전할 때 시스템 이전과 함께 발생하는 DB 분해 시 분산거래를 추천하지 않는다.참고: 마이크로 서비스로 이전할 때 분포식 거래의 위험성
간단하게 설명하자면 분산거래는 문제가 될 위험성이 있다.
따라서 Saga 모델은 마이크로 서비스에서 여러 자원을 활용한 결과의 일치성을 위한 방법이다.

이른바 Saga 모드

  • Saga 모델은 사용 결과의 일치성을 가진 구조 중 하나로 여러 상태 변경을 조정할 수 있고 자원을 장시간 잠그지 않는 구조 모델로 설계되었다.이어 "사가의 원래 생각은 헥터 가르시아 모리나와 케네시 세임이 발표한 것논문에서 비롯됐다"고 덧붙였다.
    다시 한 번 상세하게 설명하자면, 결과의 일치성을 확보하고자 하는 범위를 현지 사무 (위조 거래) 로 처리할 것이다.
  • 이것은 무엇이 좋은지 의미한다. 여러 서비스에 걸쳐 사무를 분해하고 각자 독립적으로 사무를 처리하면 매 거래소에 필요한 시간을 단축하고 여러 줄,중요한 것은 전체 표를 오래 잠그지 않고 처리할 수 있다는 것이다.
  • 또한 사가 모드에서는 롤백을 하려면 간단한 롤백을 할 수 없다(그렇지 않으면 위험하다).Saga 모드는 여러 트랜잭션과 관련되기 때문에 중간에 발생한 장애에서 이전 상태로 복구하기 위해 롤백을 제출했을 수 있습니다.
  • 따라서 사가모델은 거래를 보상하겠다는 생각으로 실시된다.보상 업무는 간단한 스크롤을 할 수 없고, 일련의 거래에서 실행되는 반방향 취소 조작을 통해 스크롤을 할 수 있다.
  • [각 로컬 트랜잭션 및 작업에 대한 책임이 있는 마이크로 서비스 예]

    [트랜잭션 수행 중 오류 발생, 트랜잭션 보상을 수행하는 예]

    Saga 모드를 구현하는 방법


    Saga 모드를 구현하는 방법은 다음 두 가지입니다.
  • Choreography(변색 이미지)
  • Orcheestration(데모)
  • Choreography(카멜레온 그래픽)

  • 디지털 왼쪽 도형의 Saga 도형에서 중앙 집권적 조정(컨트롤러)의 필요성을 피하기 위해 참가한 요소는 이벤트를 교환한다.디지털 왼쪽에 있는 그래픽을 사용하면 다른 서비스에서 로컬 트랜잭션을 트리거하는 이벤트가 각 로컬 트랜잭션에서 발행됩니다.

  • 장점

  • saga모델에 참여하는 모든 요소가 책임을 분산시켰기 때문에 단일한 고장점이 없다.
  • 결점

  • E2E 테스트는 모든 서비스를 수행해야 하기 때문에 E2E 테스트가 어려워집니다.
  • Orchest tration(공개 전시)

  • 중앙 집권 컨트롤러(시뮬레이터)는 참가한 요소에 어느 현지 거래를 집행하는지 전달한다.감사원은 모든 거래를 처리할 것이다.또 자동정정기는 요구뿐 아니라 각 임무의 상태에 따라 보상 거래를 사용해 고장을 복구한다.

  • 장점

  • 프로세스에 참여하는 모든 요소를 제어할 수 있습니다.
  • 의존 관계가 명확하기 때문에 상업 논리는 간단하다.
  • 결점

  • 설계가 복잡해지기 쉬우므로 조정에 사용되는 논리를 설치해야 한다.
  • 표시기의 관리 대상이 작업 절차이기 때문에 고장이 발생할 수 있다.
  • 참고 문헌

    좋은 웹페이지 즐겨찾기