Distributing Message Queuing in a network

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

Distributing Message Queuing in a network

There are several techniques that you can employ to make a Message Queuing solution highly available to users in a network, and more scaleable.

Implementing Message Queuing in clusters

One solution might be to implement the Message Queuing service in clusters. Message Queuing triggers can also be implemented in a cluster. A cluster is a set of computers, known as nodes or hosts, that work together under a common identity to provide a service. All clusters provide load balancing, increased availability, and scalability, but it is important to distinguish the two main cluster solutions. The first, Network Load Balancing, is intended primarily to load balance incoming TCP/IP traffic. Network Load Balancing clusters distribute client connections over multiple servers, providing scalability and high availability for client requests for services and applications, but they do not have failover capabilities. For more information, see Message Queuing in Network Load Balancing clusters.

The second cluster type, a server cluster, is intended primarily to provide failover service from one computer to another. The computers participating in this solution form a different type of cluster. The Network Load Balancing cluster would most commonly be running Web server applications. In contrast, a server cluster would most commonly be running database applications (when used in conjunction with Network Load Balancing). A server cluster appears to network clients as a single, highly available system. For more information, see Message Queuing in server clusters.

Network Load Balancing and the Cluster service can not both be active on the same computer, but by joining the two cluster solutions together to function in a complementary fashion, an overall clustering scheme can be created.

Web farms

To increase the availability and scalability of Web server resources, a Web farm is often deployed as a collection of independent servers, to which all HTTP incoming requests are directed. Network Load Balancing clusters, network address translation (NAT), and DNS round robin are some of the methods typically used to deploy Web farm capability.

DNS round-robin distribution

Microsoft DNS server supports a process referred to as round-robin distribution, a common session-based load balancing technique that balances the number of clients connecting to an Internet site supported by multiple servers. Round-robin distribution is specified by RFC 1794. With DNS round-robin, a single logical DNS name (such as www.microsoft.com) maps to several IP addresses. When a request is made to resolve the DNS name, the DNS server sends back one of the addresses from the list. Each time a request is made for this DNS name, the DNS server rotates the addresses in round-robin fashion to distribute the set of users across a set of servers. Thus, different users requesting the same DNS name are given different IP addresses to balance the load.

This technique distributes incoming requests evenly among the available IP addresses but does not fully balance the load because it is not interactive. This is because the DNS server does not monitor the loading of each IP address nor does it check whether a particular server is currently running. Round-robin distribution can be a useful starting point for small groups of servers. If you are using round-robin distribution, closely monitor your servers so that you can quickly remove any failed machines from the distribution list.

Network address translation

Network address translation (NAT) is a protocol that allows a network with private addresses to access information on the Internet through an IP translation process. NAT can be used to configure a small network to share a single connection to the Internet.