How to config server as load balancing

Hi every one,

In Spark, we have to specify server name to login. With connection Manager, we also have to specify server name to login. If you have 3 different connection Managers, you will have 3 different name server. So I would like to ask 2 questions:

1, Is there any way to use 3 different connection managers with only one domain name?

2, Is there any way to config multiple servers to have load balancing capability?

Thank you very much

Message was edited by: La com na bu

Hey mabu,

First of all, how many concurrent users are you expecting to have? If your goal is to have “dynamic” load balancing then you may try the following architecture:

  1. Use a load balancer in front of the 3 connection managers that connect to the same Wildfire server.

  2. XMPP connections are stateful and long lived so once a user established a connection the connection will last for the duration of the user session. The exception for this is to use HTTP binding.

When using Connection Managers there is still only one XMPP domain. The XMPP domain is the one being used by Wildfire. Each Connection Manager will have its own IP address or hostname that will let users find them and connect to them. If you are using a load balancer then you can hide each CM’'s address and only provide a single point of entry.

For your information, Wildfire 3.2 to be released this month will let you scale to 40K or more users connected directly to the server. Therefore, you may not need to use load balancers and CMs.


– Gato


If you have 3 different connection Managers, you will have 3 different name server.” is not right. Set the jive.xmpp.domain value in manager.xml to the xmpp.domain of Wildfire - that’'s really a little bit odd but it works.

As Gato said use to bind a CM to a specific IP address and use in front of it a load balancer.


Many Thanks for your answers. I would like to ask one more question: What is the load balancer and where can I find information about it?


It depends in fact

  • You can find some kind of hardware load balancer. For example we use CoyotePoint Equalizer (No more advertising )

  • You can also use DNS round robin and I think you can also configure some firewalls like iptables to do so but I am not experienced with that so that need to be verfiied.

  • With the hardware equalizer, you use its name as server name and depending on a port number it will do the load balancing among all registered servers. In our case several CMs connected to a single WF server.

  • With the DNS round robin solution, you set several IP corresponding to a single domain name. These IPs are the ones of your CMs so when a user wants to connect to your domain he asks the DNS server for the IP associated to the domain name and will get in a round robin manner the different IP address. It is not as powerfull as an Equalizer that can optionnally analyze the server loads and so on but it is cheaper and can be enough probably.


Pen (License: GPL) is another software load balancer, there are also L4-L7 switches available for this purpose but one can easily start with DNS round robin.