Private or Public MSMQ

2019-02-21 09:37发布

问题:

We are using Queue for few of are WCF services. We are using NetMSMQ binding for the WCF services which use Private MSMQ. The system works OK on our QA environment. I am not sure of any real difference between and private or public queue. The client application are on seperate machine still are able to access Private queue of the WCF service on other box. I am not sure if this is the right thing to do. are there any security related differences between private and public MSMQ. Can someone put some light on when to use Private or Public MSMQ.

回答1:

I also recommend using private queues. I've used MSMQ since version 1.0 and did the whole public queue deployment back before the AD intgration and having worked on both types of public queue deployment the private queue approach in my opinion is the best for most groups needs. Yes, there are some limitations and some gaps in overall enterprise messaging robustness, like not being able to use Routing Queue servers for example, but if your goal is to simply have a decent reliable message delivery platform for store-and-forward and use of triggers on queues then the private queue approach will be fine. My group processes well over 3 million message transactions per day through private queues and have been doing this for many years now.



回答2:

The info you need is well hidden (as per usual), but it can be found here:

http://msdn.microsoft.com/en-us/library/ms706878(VS.85).aspx

It's pretty much down to your deployment, your level of Active Directory integration and your distribution requirement for the queues. If it's WCF, I assume the queue is being exposed via IIS/WPAS which would abstract the queue away from the application so it may be less relevant in that mode and local queues are sufficient.



回答3:

Having to work with an application that is heavy on using public MSMQs, I'd stick with private queues. The primary advantage is that you won't be tied to the active directory. I've had many times where changes made to a local MQ wouldn't replicate to the AD, so I had to have an server admin log into the domain controller and delete the queue for me so I could recreate it and make sure all the settings were correct.

Here is an article from Microsoft going into some of the differences.

http://technet.microsoft.com/ja-jp/library/cc753440%28WS.10%29.aspx



标签: msmq private