powered by Jive Software

Best method of High Availability?

I’m looking at a setup of about 50,000 users. What would the best HA method be so that if 1 server fails, users can continure on without noticing too much of a change? I was thinking MySQL replication or something similar?


We use MySQL replication and Openfire’s Clustering plugin with Oracle Tangosol Coherence for load balancing and fail-over support. This has some benefits but does not provide total protection in the worst case scenario. If the head node server goes offline, the slave nodes would also fail because Openfire cluster nodes use the same head node database. A new head node would need to be manually pointed to the new mysql instance (formerly configured as a mysql slave), and the instance of openfire restarted. In a production environment the Oracle licenses are expensive. Maybe we can get this to open source via memcached or jboss efforts undertaken by others.

Depending on which openfire plugins you run, the configuration can be tricky. Some plugins would need to be started on the slave nodes (e.g. Fastpath, Kracken), but with the state saved in mysql, all of the configuration changes are hopefully saved. Testing can confirm for each plugin you desire to run.

I am curious to know as well if you are able to scale up to the numbers you require.



Hi Adam,

I wonder whether you need a database replication. Only a few things are written to the database, like new users and MUC history. So the database does not need to be up to date, a delay of one day may be fine - depending on your needs.

You need a fast way to disable one server and activate the other one, so you may want to use a cluster. Or use a layer 7 switch which can detect when the master server fails and then switches to the backup.