MetaFluent JMS Deployment Architecture

Currently, the MetaFluent JMS Server implementation is a hub-and-spoke architecture that uses TCP/IP as transport and supports clustering with resilient load-balancing. Both MetaFluent JMS Server and the MetaFluent JMS Load-Balancer applications use the modular MetaFluent Server Framework - each application comprising a different set of modules used within the framework.

Client

Client applications connect to a host and port, either directly to a MetaFluent JMS Server or to a MetaFluent JMS Load-Balancer. To the client application it makes no difference. The use of a load-balancer is completely transparent. Client applications may be based on any of the MetaFluent JMS implementations - Java, .NET, or C.

Servers

Server clustering and load-balancing are decentralized. A typical N+1 configuration uses several Servers and 2 Load-Balancers such that the number of Servers is one more that is necessary for the expected load in terms of clients-per-server. To minimize the use of hardware, a load-balancer may application may co-exist with a server application. The use of a dynamic discovery protocol means that Servers join the cluster dynamically - new Servers can be added dynamically at any time without restarting any existing cluster members or load-balancers.

Administration

All Servers and Load-Balancers use the same configuration - so there is no need to assign unique id's or otherwise specify the exact composition of the cluster. MetaFluent convenient browser-based administrative interface allows an administrator to navigate from a load-balancer to any cluster member or to a specific user connection.