3

似乎nServicebus附带的所有示例项目都设置为发送者和主机是 Web 角色和工作角色(并通过角色入口点托管)。

我需要做这样的事情:

Web 角色发送消息 --> On Premise Host 处理消息

是否可以将本地主机配置为仅使用 Azure 队列存储(而不是 MSMQ)?

我似乎在任何地方都找不到一个这样的例子。

4

2 回答 2

3

是的,这是可能的,您只需在初始化总线时指定传输:

   var config = Configure.With()
                 .SpringBuilder()
                 .AzureConfigurationSource() <--- Don't use this when working on premise.
                 .XmlSerializer()
                 .UnicastBus()
                 .LoadMessageHandlers()
                 .AzureQueuesTransport()  <--- Configure Azure Storage Queues
                 .IsTransactional(true)
                 .PurgeOnStartup(false)
                 .InMemorySubscriptionStorage();

对于文档部分,我建议您查看 github:https ://github.com/NServiceBus/NServiceBus/tree/master/Samples/Azure

请注意,这些示例中的大多数都旨在在 Windows Azure 中运行,因此使用了AzureConfigurationSource。当您在本地运行时,这将不起作用,因为它使用 RoleEnvironment 中的设置。在本地工作时不要使用AzureConfigurationSource

于 2012-04-23T06:59:07.857 回答
-1

我没有使用 nServiceBus,但听起来 Azure 服务总线将是您在本地和 Azure 之间进行混合通信的最佳选择。

您可以使用 ServiceBus 队列,或者更智能地了解您的模型,并通过主题和订阅进行发布/订阅。

在此示例中,您可以让 Web 角色写入队列/主题,然后让本地消费者通过 REST(.NET API) 从队列/主题中读取。(参见下面链接中的示例)

查看他们的 MSDN 链接:http: //msdn.microsoft.com/en-us/library/windowsazure/hh367516.aspx

当然,也许问 Udi Dahan 什么是最好的前进方式也可能是个好主意 :)

于 2012-04-23T03:28:25.623 回答