Akka 문서 - 메시지 전달의 신뢰성(고급 추상화, 데드레터)

Ada·2023년 9월 19일

Akka

목록 보기
20/32

고급 추상화


Akka의 핵심 도구 세트를 기반으로, 더욱 강력한 고급 추상화를 제공한다.

메시징 패턴

앞서 언급했듯이, 신뢰성 있는 전달을 위한 명확한 대안은 명시적인 ACK-RETRY 프로토콜이다. 가장 간단한 형태로는 다음이 필요하다.

  • 개별 메시지를 식별할 방법

  • 시간 내에 확인되지 않으면 메시지를 다시 보내는 재시도 메커니즘

  • 수신자가 중복을 탐지하고 제거할 방법

세 번째는 확인 메시지도 도착을 보장하지 않기 때문에 필요하다.

ACK-RETRY 프로토콜은 신뢰성 있는 전송 기능에서 비즈니스 수준의 확인과 식별자를 사용한 중복 제거를 지원한다.

이벤트 소싱

이벤트 소싱(및 샤딩)은 수십억 사용자에게 확장되는 대형 웹사이트의 기반이다. 아이디어는 간단하다:

컴포넌트(액터라고 생각하면 됨)가 명령을 처리할 때 명령의 효과를 나타내는 이벤트 목록을 생성한다. 이 이벤트들은 컴포넌트의 상태에 적용될 뿐만 아니라 저장된다.

메일박스와 명시적 확인

사용자 지정 메일박스 유형을 구현함으로써, 수신 액터의 끝에서 일시적인 실패를 처리하기 위해 메시지 처리를 다시 시도할 수 있다.


Dead Letters


배달되지 못한 메시지는 /deadLetters라고 불리는 합성 액터에 배달된다.

Dead Letters의 활용 방법

이것의 주된 용도는 디버깅이다.

Dead Letters를 어떻게 받나

액터는 이벤트 스트림에서 akka.actor.DeadLetter 클래스에 구독할 수 있다.

Dead Letters의 별로 문제되지 않는 것들

액터가 스스로 종료하지 않을 때마다, 그것이 스스로에게 보내는 몇몇 메시지가 손실될 가능성이 있다.

profile
백엔드 프로그래머

0개의 댓글