2009-09-08 7 views
5

여러 소비자가 단일 MSMQ 인스턴스에서 수신 대기하고 Selective Consumer 인터페이스를 사용하여 각자 고유 한 메시지 하위 집합을 처리 할 수 ​​있습니까? 이 시나리오는 pub/sub를 사용하여 올바르게 작동하지 않을 수 있습니다. 대기열의 단일 소비자가 올바르게 작동하지만 1 명 이상의 소비자 (동일한 실행 파일의 여러 인스턴스)를 사용할 때 아무 메시지도 표시되지 않습니다. 내가 이해하는 한, 이것은 단 한 명의 소비자 만이 하나의 메시지를 처리하기 때문에 '경쟁하는 소비자'의 경우는 아니다.MassTransit의 단일 대기열에 대한 여러 소비자

도움이나 의견을 보내 주시면 감사하겠습니다.

답변

2

MSMQ 대기열에서 메시지를 보내려면 MassTransit을 사용하는 경우 해당 대기열이 상자에 로컬 인 것이 좋습니다.

메시지로드를 분산하기 위해 동일한 큐에서 읽는 프로세스가 여러 개있는 경우 선택적 수신을 사용하여 해당 프로세스와 관련된 각 인스턴스의 메시지 만 사용할 수 있습니다.

예를 들어 서비스에 메시지를 보내고 해당 서비스가 상관 된 메시지로 응답하는 응용 프로그램의 인스턴스가 여러 개있는 경우 식별자별로 상관 된 메시지를 구독 할 수 있으며 가입 된 메시지 만 배달됩니다. 선택되지 않은 메시지는 관심있는 프로세스에 의해 처리 될 때까지 큐에 남아 있습니다.

이 패턴 때문에 무시 된 응답이 시간이 지남에 따라 큐를 방해하지 않도록 메시지에 만료 시간을 설정하는 것이 좋습니다.

이 시나리오는 메시징을 통해 요청/응답 패턴을 복제 할 때 매우 일반적입니다.

관련 문제