2012-10-25 6 views
1

작은 차이가있는 NserviceBus 패키지 (3.2.8)의 AzureServiceBusFullDuplex 샘플을 기반으로 소규모 샘플 프로젝트를 구현했습니다. 클라우드에 수신자가 있고 구내에 발신자가 있습니다. . 두 개의 온 - 프레미스 엔드 포인트를 실행할 때까지 제대로 작동합니다. 그렇게하면 두 번째 enapoint가 메시지를 보내고 첫 번째 끝점에서 응답을 받게됩니다. 세 번째 끝점을 시작하고 메시지를 보내면 두 번째 끝점에서 응답을받습니다.Azure 서비스 버스, 전이중 및 다중 발신자가있는 NServiceBus

논리적으로 나는 모든 엔드 포인트가 응답 메시지 계약에 등록되고 최신 등록 된 엔드 포인트가 해당 유형의 모든 메시지를 수신했다고 생각합니다. 그러나 클라우드에 하나의 처리기 만있는 동일한 메시지 유형의 여러 발신자가있을 때 필자의 시나리오를 구현할 수 있습니까? 네이티브 Azure Service Bus 대기열의 세션 지원과 비슷한 기능입니다. 전제 엔드 포인트에이은, 당신이 확인하고 그들은 모두 서로 다른 큐에서 수신 확인 할 수됩니다 응답을 데리러 같은 입력 큐와 첫 번째로 구성되어 같은

답변

1

그래서 나는
(1)를 사용하여 내 프로토 타입)을 코드에서

   _configure = Configure.With() 
      .DefaultBuilder() 
      .Log4Net(new log4net.Appender.ColoredConsoleAppender()) 
      .JsonSerializer() 
      .DefineEndpointName(queueName) 
      .AzureServiceBusMessageQueue() 
      .IsTransactional(false) 
      .MessageForwardingInCaseOfFault() 
      .UseInMemoryTimeoutPersister() 
      .DisableSecondLevelRetries() 
      .InMemorySubscriptionStorage() 
      .UnicastBus() 
       .DoNotAutoSubscribe() 
       .LoadMessageHandlers() 
      .CreateBus(); 

에서 큐의 이름을 지정하여 AzureServiceBusQueueConfig
2)에 지정된 큐 이름을 완료 AzureServiceBusQueueConfig.cs 큐 이름으로 엔드 포인트 이름을 사용하고 큐 이름이 구성되어 있지 않으면 앞의 구성 호출에서 오는 엔드 포인트 이름이 사용됩니다.

2

알렉세이는

소리?

종류와 관련, 이브

+0

예, 실제로 몇 시간 전에 POC 커플을 마쳤습니다. 엔드 포인트를 다른 대기열로 분할했습니다. 실제로 app.config에서 수동으로 분할하는 작업을 시작했는데이 작업은 구성 섹션 코드를보고 QueuePerInstance를 시도하지만 동일한 인스턴스에서 여러 인스턴스가 실행되는 경우에만 작동하므로 구성에서 큐 이름을 비워 둡니다. DefineEndPointName ("고유 이름")을 사용하고 작동했습니다 :) –

관련 문제