1

我已经实现了一个基于 NServiceBus 包(3.2.8)中的 AzureServiceBusFullDuplex 示例的小示例项目,但差别很小 - 我在云中有监听器,在本地有发送者。在我运行两个本地端点之前,它可以正常工作。当我这样做并且第二个 enapoint 发送消息时,第一个端点会收到回复。当我启动第三个端点并发送消息时,第二个端点会收到回复。

从逻辑上讲,我理解会发生什么,每个端点都订阅了回复消息合同,并且最新注册的端点收到了该类型的所有消息。但是,当我有多个相同消息类型的发送者,而云端只有一个处理程序时,我该如何实现我的场景呢?它类似于本机 Azure 服务总线队列中的会话支持。

4

2 回答 2

2

阿列克谢,

听起来内部端点配置了相同的输入队列,第一个接收回复的人得到它,你能验证这一点并确保它们都在不同的队列上监听吗?

亲切的问候,伊夫

于 2012-10-25T13:54:26.037 回答
1

所以我完成了我的原型使用
1) AzureServiceBusQueueConfig 中未
指定队列名称 2) 在代码中指定队列名称

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

在 AzureServiceBusQueueConfig.cs 中,我发现它使用端点名称作为队列名称,如果未配置队列名称,则使用来自前面配置调用的端点名称。

于 2012-10-29T15:10:38.833 回答