.net 将NServiceBus与多个应用程序同时用作发布者和订阅者
我正在尝试使用NServiceBus使4个应用程序一起通信 所有这些应用程序都必须充当发布者和订阅者 我发现让它工作的唯一方法是在上创建一个名为Server的“主”队列 所有应用程序配置中的MessageEndpointMappings都映射到了哪个,但我认为这不是一个好方法 那么,我应该如何在所有这些应用程序上配置NServiceBus以使其正常工作呢 应用1:.net 将NServiceBus与多个应用程序同时用作发布者和订阅者,.net,nservicebus,.net,Nservicebus,我正在尝试使用NServiceBus使4个应用程序一起通信 所有这些应用程序都必须充当发布者和订阅者 我发现让它工作的唯一方法是在上创建一个名为Server的“主”队列 所有应用程序配置中的MessageEndpointMappings都映射到了哪个,但我认为这不是一个好方法 那么,我应该如何在所有这些应用程序上配置NServiceBus以使其正常工作呢 应用1: <MsmqTransportConfig InputQueue="MyApp1" ErrorQueue="Errors"
<MsmqTransportConfig InputQueue="MyApp1" ErrorQueue="Errors" NumberOfWorkerThreads="1" MaxRetries="5"/>
<MsmqSubscriptionStorageConfig Queue="Subscriptions" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyApp.Messages" Endpoint="Server" />
</MessageEndpointMappings>
</UnicastBusConfig>
应用2:
<MsmqTransportConfig InputQueue="MyApp2" ErrorQueue="Errors" NumberOfWorkerThreads="1" MaxRetries="5"/>
<MsmqSubscriptionStorageConfig Queue="Subscriptions" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyApp.Messages" Endpoint="Server" />
</MessageEndpointMappings>
</UnicastBusConfig>
应用程序3:
<MsmqTransportConfig InputQueue="MyApp3" ErrorQueue="Errors" NumberOfWorkerThreads="1" MaxRetries="5"/>
<MsmqSubscriptionStorageConfig Queue="Subscriptions" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyApp.Messages" Endpoint="Server" />
</MessageEndpointMappings>
</UnicastBusConfig>
应用程序4:
<MsmqTransportConfig InputQueue="MyApp4" ErrorQueue="Errors" NumberOfWorkerThreads="1" MaxRetries="5"/>
<MsmqSubscriptionStorageConfig Queue="Subscriptions" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyApp.Messages" Endpoint="Server" />
</MessageEndpointMappings>
</UnicastBusConfig>
NServiceBus建议您遵循仅由一个服务发布的特定消息类型的模式。通常,每个服务都有一个“消息”程序集,例如:
<MsmqTransportConfig InputQueue="MyApp1" ErrorQueue="Errors" NumberOfWorkerThreads="1" MaxRetries="5"/>
<MsmqSubscriptionStorageConfig Queue="MyApp1Subscriptions" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyApp2.Messages" Endpoint="MyApp2" />
<add Messages="MyApp3.Messages" Endpoint="MyApp3" />
<add Messages="MyApp4.Messages" Endpoint="MyApp4" />
</MessageEndpointMappings>
</UnicastBusConfig>
如果要从所有四个应用程序发布相同的消息类型,可以将消息Bus.Send()发送到中心事件发布服务器服务,然后该服务可以Bus.publish()将其发布。因此,无论消息类型如何,您都希望每个应用程序都能够发布消息,并拥有所有四个应用程序(包括发布服务器)然后收到那个消息?如果不是,那么真正的目标是什么?您能否详细说明沟通需求背后的业务需求?