5 Replies Latest reply on May 22, 2012 3:59 PM by pwalkerj

    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

        • Clustering using hardware load balancer

          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

            • Re: Clustering using hardware load balancer

              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

                • Re: Clustering using hardware load balancer
                  rcollier

                  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.

                    • Re: Clustering using hardware load balancer

                      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 <

                    • Re: Clustering using hardware load balancer
                      Dele Olajide

                      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