2011-06-14 3 views
3

들어오는 요청을 처리하는 WCF 서비스가 있으며 각 들어오는 메시지에 대해 다른 출력 메시지를 생성하여 다른 WCF 서비스로 보냅니다. 메시지가 오는 순서는 중요하며 방해 할 수 없습니다. 따라서 서비스는 서비스에 의해 수신 된 것과 동일한 순서로 해당 출력 메시지를 생성해야합니다. 또한 멀티 코어 CPU의 혜택을 누리려면 요청을 동시에 처리하는 것이 중요합니다.ConcurrencyMode를 사용하는 WCF 서비스의 메시지 순서 유지. 다중 모드

이 경우 입력 및 출력간에 메시지 순서를 유지하는 최선의 방법은 무엇입니까?

답변

3

귀하의 구현에 달려 있습니다. WCF는 순서가 지정된 배달 (신뢰할 수있는 세션 또는 MSMQ를 통해서만)을 수행 할 수 있으므로 메시지를 보낸 순서대로 수신 할 수 있지만 작업이 동일한 순서 (하나는 메시지는 더 빠르게 처리되고 다른 수신 된 메시지는 더 일찍 처리 될 수 있음). ConcurrencyModeMultiple으로 설정하여 메시지를 처리하려면 매우 복잡한 작업 만 수행하게됩니다. 동시성을 줄이는 작업을 수동으로 동기화해야하며 최악의 경우 대체 작업은 ConcurrencyMode.Single에 가깝습니다. 동기화 작업을 수행하기에 충분하지 않기 때문에 동기화를 수행하기가 어려울 수 있습니다. 출력 메시지의 WCF 채널 스택 처리도 동기화되어야합니다.