먼저, 일부 정보 : Rebus는 내구성 큐, 내구성있는 메시징 및 보장 된 배달 기능을 좋아합니다. 실제로, 당신이 적극적으로 제외시키지 않으면, 모든 것이 작동하는 방식입니다. 따라서 Rebus를 사용하여 pub/sub 작업을 할 수 있다면 내구성이 있습니다.
정의에 의한 게시는 "알 수없는 수의 구독자"와 작동합니다. 이는 적어도 버스 관련 문제이며 응용 프로그램에 대한 우려는 아닙니다.
실제로 구독자는 SubscriptionMessage
(구독 요청으로 간주 될 수 있음)을 발행하여 게시/하위 대화를 시작한 다음 게시자가 몇 가지 이벤트를 게시합니다 (구독 회신으로 볼 수 있음)). 게시자의 "버스 부분"은 특정 이벤트 유형에 가입 한 사람을 추적합니다.
지금까지 그렇게 좋았습니다.
우선 순위와 관련하여 Rebus를 사용하여 우선 순위를 정하는 방법은 없습니다. 특정 메시지 유형에서 최대 대기 시간을 보장하는 한 가지 방법은 제안하는 것처럼 낮은 우선 순위 메시지로 입력 대기열이 막히지 않는 별도의 끝점을 작성하는 것입니다.
Rebus가 구성된 과정에서 각 프로세스마다 단 하나의 입력 대기열 만있는 것이 좋습니다. 따라서 우선 순위가 높은 메시지 유형에 가입하는 별도의 프로세스를 만들어야합니다. here를 참조 - 가MsmqMessageQueue
이 (얼마나 신속 배송 및 타임 투 - 수신 구현과 유사한 특정 헤더를 이해함으로써 지원 될 수
나는 MSMQ는 메시지에 대한 우선 순위의 어떤 종류를 지원하는지 알고, 그래서 그것을 추측) - 끌어 오기 요청은 기꺼이 받아 들여지고 강력하게 권장됩니다.
각 구독자에 대해 끝점을 구성해야합니까? 구독자에게 보내는 메시지는 어디에 저장됩니까? 샘플 구현을 찾을 수 없었습니다. MSMQ 메시지 우선 순위를 조사합니다. – Lybecker
가입자에 대한 메시지는 각 가입자의 입력 대기열에 저장됩니다. 게시자는 게시 할 때 각 구독자에게 직접 사본 (*)을 보냅니다. – mookid8000
*) 그리고 "직접"이라는 말은 MSMQ 저장 및 전달을 의미하므로 완전히 안전합니다. – mookid8000