Clustering using hardware load balancer

Hello,

I would like to build out a large Openfire user base pushing potentially 1m users in the future. I have resources and a budget to make this happen, but am not satisfied with the current Oracle software clustering solution for Openfire.

As such, I would like to circumvent the entire Oracle Coherence software process and use just a hardware load balancer with active intelligence capability to distribute load to stand-alone Openfire instances connecting back to a similar MySQL database (clusted as master/slave).

Questions

  • has anyone tried to do this yet?

  • if so, is there anything special to configure?

  • if not, what issues might I have with this configuration?

thank you!

Pete

Hi Pete,

I am trying to achive the same which u were trying to do few months back.

please let me know if you have achived it. the only diffrence in my setup is, i am tring to use HAProxy software as a load balancer not the hardware one.

please let me know how to guide my client requests to load balancer so that it can be forwarded to XMPP servers.

Do i need to make some changes in code?

Regards,

Guru

Hi Guru,

Well, long story, short, we haven’t circled back on this with our current

beta development tasks. But sometime back I did talk with our datacenter

cloud provider, which has Baracuda load balancers that we can utilize if

and when we are at the point requiring such volume.

The answer I believe, if scale is a real issue, is to front all of the XMPP

engines with hardware load balancers if it is available in your budget. I

would look at Baracuda as a good cost-effective hardware solution, if you

or your cloud provider does not already have such infrastructure in place -

http://www.barracudanetworks.com/ns/products/balancer_overview.php

I don’t see how this will work since the internal state of each server will differ, since there is no coordination between them keep them in synch. This is what the coherence solution does. It enables messaging between the nodes to keep state consistent.

For example, if user1 joins a chat room in node A, then a message posted to that chat room in node B must know that user1 has joined so the message can be routed to them. I don’t see how an external balancing mechanism can address these issues.

If all you need is a front-end to load balance many users with no fail-over requirements to a single Openfire node, then take a look at Openfire connection managers

Okay, yes, I am thinking narrowly about our own development situation,

which I can’t fully discuss to do non-disclosure. But I can tell you that

our product is a mobile app, which generates user accounts on demand to

another mobile user with the same app just for temporary communication.

We can hold the route open with a sticky session process. Essentially we

are mostly load-balancing rather then true clustering at the Openfire

level. On the back-end, everything is clustered MySQL / Mongo DB.

On Tue, May 22, 2012 at 11:09 AM, rcollier <