WCF load balance and remote MSMQ sharing for high throughput

After tons of reading in books and on the Internet, I noticed hints of information that WCF and MSMQ can be used to achieve high throughput. The information I saw mentions the use of multiple WCF services in a farm that reads from the same MSMQ queue. The problem is that I found paragraphs here and there that mention that high bandwidth can be performed, but I cannot find a document on how to implement it. The following is a snippet of an MSDN article.

The following best practice paragraph for queuing is http://msdn.microsoft.com/en-us/library/ms731093.aspx To increase throughput and availability, use the WCF services farm that are read from the queue. This requires that all of these services expose the same contract on the same endpoint. The farm approach is best suited for high-messaging applications because it allows multiple services to read all from the same queue.

This is what I am trying to solve. I have an intranet application where the client sends a request to the WCF service. But I want the ability to balance WCF services across multiple servers in a farm. I also want these WCF services in the farm to perform transactional reads from remote MSMQ when an item is available in the queue. If possible, the problem is that I do not understand the process of activating WCF to retrieve messages from a remote queue.

If possible, does anyone know any articles or webcasts that could explain this in detail?

Bardev

+6
wcf msmq load-balancing
source share
1 answer

I do not know about any articles, but as a proof of concept, I ran several instances of the existing wcf application against msmq.

It so happened that if 10 messages that are already in the queue, they were processed by only one of the wcf instances.

However, all subsequent messages that were sent to the queue, shared almost equally between all instances of wcf, provide a fairly neat solution for load balancing.

What you need to do is create a single wcf service working against msmq, make sure that it works correctly, and then from there, launching more and more instances of the wcf service to see what happens.

+4
source share

All Articles