2013-03-11 7 views
2

알 수없는 구독자에게 메시지를 게시하는 방법이 필요합니다. 메시지는 내구성/지속성이 있어야하며 세 가지 우선 순위 (높음, 보통 및 낮음)로 분류됩니다. 가입자 중 한 명은 제한된로드 만 처리 할 수 ​​있으며 일부 메시지는 더 중요합니다. 우선 순위가 높은 우선 순위 메시지 처리Rebus와 내구성이있는 메시지가 포함 된 게시/서브

Rebus를 사용하여 어떻게 처리합니까? 구독자 당 3 개의 대기열이 필요하다고 생각하십니까?

내구성 큐와 MSMQ가있는 게시/구독 예제는 어디서 찾을 수 있습니까?

답변

2

먼저, 일부 정보 : Rebus는 내구성 큐, 내구성있는 메시징 및 보장 된 배달 기능을 좋아합니다. 실제로, 당신이 적극적으로 제외시키지 않으면, 모든 것이 작동하는 방식입니다. 따라서 Rebus를 사용하여 pub/sub 작업을 할 수 있다면 내구성이 있습니다.

정의에 의한 게시는 "알 수없는 수의 구독자"와 작동합니다. 이는 적어도 버스 관련 문제이며 응용 프로그램에 대한 우려는 아닙니다.

실제로 구독자는 SubscriptionMessage (구독 요청으로 간주 될 수 있음)을 발행하여 게시/하위 대화를 시작한 다음 게시자가 몇 가지 이벤트를 게시합니다 (구독 회신으로 볼 수 있음)). 게시자의 "버스 부분"은 특정 이벤트 유형에 가입 한 사람을 추적합니다.

지금까지 그렇게 좋았습니다.

우선 순위와 관련하여 Rebus를 사용하여 우선 순위를 정하는 방법은 없습니다. 특정 메시지 유형에서 최대 대기 시간을 보장하는 한 가지 방법은 제안하는 것처럼 낮은 우선 순위 메시지로 입력 대기열이 막히지 않는 별도의 끝점을 작성하는 것입니다.

Rebus가 구성된 과정에서 각 프로세스마다 단 하나의 입력 대기열 만있는 것이 좋습니다. 따라서 우선 순위가 높은 메시지 유형에 가입하는 별도의 프로세스를 만들어야합니다. here를 참조 - MsmqMessageQueue이 (얼마나 신속 배송 및 타임 투 - 수신 구현과 유사한 특정 헤더를 이해함으로써 지원 될 수

나는 MSMQ는 메시지에 대한 우선 순위의 어떤 종류를 지원하는지 알고, 그래서 그것을 추측) - 끌어 오기 요청은 기꺼이 받아 들여지고 강력하게 권장됩니다.

+0

각 구독자에 대해 끝점을 구성해야합니까? 구독자에게 보내는 메시지는 어디에 저장됩니까? 샘플 구현을 찾을 수 없었습니다. MSMQ 메시지 우선 순위를 조사합니다. – Lybecker

+0

가입자에 대한 메시지는 각 가입자의 입력 대기열에 저장됩니다. 게시자는 게시 할 때 각 구독자에게 직접 사본 (*)을 보냅니다. – mookid8000

+0

*) 그리고 "직접"이라는 말은 MSMQ 저장 및 전달을 의미하므로 완전히 안전합니다. – mookid8000