다음을 통해 공유


메시징 전달 보장

Orleans 메시징 전달 보장은 기본적으로 최대 1회입니다. 필요에 따라 시간 초과 시 재시도를 수행하도록 구성된 경우 Orleans는 대신 최소 1회 전달을 제공합니다.

자세한 정보:

  • Orleans의 모든 메시지에는 자동 시간 제한이 있습니다(정확한 시간 제한 구성 가능). 회신이 정시에 도착하지 않으면 시간 제한 예외로 반환된 Task가 손상됩니다.
  • 시간 초과 시 자동 재시도를 수행하도록 Orleans를 구성할 수 있습니다. 기본적으로는 자동 재시도를 수행하지 않습니다.
  • 물론 애플리케이션 코드로 시간 초과 시 재시도를 수행하도록 선택할 수도 있습니다.

Orleans 시스템이 자동 재시도를 수행하지 않도록 구성되어 있고(기본 설정) 애플리케이션이 다시 전송되지 않는 경우 Orleans는 최대 1회 메시지 배달을 제공합니다. 메시지는 1회 전달되거나 전혀 전달되지 않습니다. 메시지는 두 번 전달되지 않습니다.

다시 시도(런타임 또는 애플리케이션에 의해)를 사용하는 시스템에서 메시지는 여러 번 도착할 수도 있습니다. Orleans는 현재 이미 도착한 메시지를 오래 저장하기 위한 작업을 하지 않으며 두 번째 전달을 표시하지 않습니다. (비용이 꽤 많이 들 것이라고 생각합니다.) 따라서 재시도 시스템에서 Orleans는 최대 1회 배달을 보장하지 않습니다.

잠재적으로 다시 시도를 무기한으로 계속하면메시지가 최종적으로 도착하여 최소 1회 전달 보장을 제공하게 됩니다. “최종적으로 도착”은 런타임이 보장해야 하는 사항입니다. 다시 시도를 계속하더라도 그 자체가 저절로 되는 것은 아닙니다. 조직이 영구적인 실패 상태로 들어가지 않고 실패한 조직은 결국 다른 사일로에서 다시 활성화되므로 Orleans는 최종적인 전달을 제공합니다.

요약하자면, 재시도가 없는 시스템에서 Orleans는 최대 1회 메시지 배달을 보장합니다. 무한 다시 시도를 사용하는 시스템에서 Orleans는 최소 1회를 보장합니다(최대 1회는 보장하지 않음).

Important

Orleans 기술 보고서에서 실수로 자동 다시 시도를 사용하는 두 번째 옵션만 언급했습니다. 기본적으로 다시 시도를 사용하지 않고 Orleans가 최대 한 번 전달을 제공한다는 점을 언급하지 못했습니다.