NServiceBus Single Process, but Multiple Input que

2019-07-17 09:46发布

问题:

We are trying to get many applications to communicate together and drive actions in each other via NSB. I would like to put each app into its own queue for two reasons: make it easier for support to troubleshoot problems and (possibly) have another place where I could scale the app. The bus will be hosted inside a windows service, possible just single instance that all apps will share. Each app can publish a message that will be picked up by windows service and processed using assemblies from another app, then response message will be put back onto the same queue. Potentially all apps and the window server can be installed on the same machine, and installing many windows services that do the same thing does not sound a like a good answer to me. Is there any way for one windows service hosting NSB to listen to multiple queues?

Thank you.

回答1:

This is possible using a Satellite, but I wouldn't recommend it for distinct applications. I think you will find that when you start to scale out the applications, you will end up with a 1 to 1 relationship between windows services and queues anyway.

Furthermore it is typical to get even more granular and have 1 message type per queue/service. We have gotten to this point internally with some integrations with third parties. Here is a description of a use case for using a Satellite.