2012-11-15 2 views
0

AzureMessageQueue를 전송으로 사용하여 하늘 작업자 역할로 호스팅되는 NServiceBus 끝 점이 있습니다. 나는 꽤 푸른 ​​하늘에서 구성된 하나 이상의 인스턴스로 worker 역할을 수행 할 것이라고 확신한다. 또한 주문이 중요한 몇 가지 메시지가 있습니다.하늘색 작업자 역할 및 메시지 순서로 호스팅되는 NServiceBus 확장

여기 내 질문입니다. 이 유형의 설정 (하늘색 작업자 역할이 수평 확장 됨)을 사용하여 순서를 제어 할 수있는 방법이 있습니까?

내가 사가를보아야할까요? 아래에 설명 된 것과 같은 기술 (bus.send (object [] messages) 오버로드 사용)은이 모델에서 작동 할 것입니다. 그러나 이것은 희미한 대기열의 크기 제한으로 인해 몇 가지 메시지가있는 경우에만 이상적입니다 . 일괄

http://mikaelkoskinen.net/post/NServiceBus-In-order-message-processing.aspx

답변

0

Bus.Send 도움이 될 메시지는 충분히 작은 경우에 따라서 메시지 큐에서 읽기 배치 크기를 구성하는 것입니다, 당신은 definitly 메시지의 순서이 방법을 제어 할 수 있습니다. 배치 전송은 동일한 물리적 대기열 메시지에 여러 메시지 인스턴스를 배치하고, 일괄 읽기는 한 번에 대기열에서 여러 물리적 메시지를 가져 와서 노드에서 순서대로 처리합니다.

또 다른 옵션은 blob에서 임대를 사용하여 메시지 처리기에서 읽기를 동기화하는 것입니다. nsb timeoutmanager의 코드를 참조하여 동기화에 사용하는 방법이나 주제에 대한 steve marx의 블로그 게시물을 살펴보십시오. http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases

하지만 푸른 메시지 대기열은 자신을 보장하지 않으므로 최선의 노력을 기울이십시오. 전송 수준에서의 주문을 보장하려면 메시지 순서가 설정된 Azure ServiceBus 대기열을 사용해야합니다.

친절한 답변, 이브

관련 문제