2014-09-05 5 views
2

Rebus HTTP 게이트웨이가 메시지 배달을 확인하는 방법을 묻습니다. 그러면 OutboundService가 트랜잭션을 커밋하거나 롤백 할 수 있음을 알리는 메시지를 보낼 때 어떻게 확인합니까?Rebus HTTP 게이트웨이가 메시지 배달을 확인하는 방법

직관적 인 대답은 그 HTTP 응답 될 것은 그러나 아무런 조치가 응답을 읽은 후 수행되지 않습니다 보인다 코드

https://github.com/rebus-org/Rebus/blob/5fef6b400feaf569e0d6517ad9ee3f6da2f31820/src/Rebus.HttpGateway/Outbound/OutboundService.cs#L139

보고 인정합니다. 사전에

감사합니다 :)

답변

2

이 수행하는 매우 간단한 오류가 발생하지 경우, 다음 메시지가 대상 큐에 안전하게 전달 된 것으로 간주하는 방식에 "인정".

즉, 동일한 메시지를 두 번 수신하는 위험은 크게 증가하지만 편재하는 은 게이트웨이를 통해 적어도 한 번만 배달 보증을 유지합니다.

각 메시지를 한 번만 처리해야하는 경우 수신자를 idempotent으로 만들어야합니다.하지만 일반적으로 분산 트랜잭션이없는 메시징을 할 때 규칙이므로 HTTP 게이트웨이가없는 경우와 다를 바 없습니다 뒤얽힌.