Hello to the OpenFire Community -
I am presently looking into launching an OpenFire-powered XMPP chat network. I want to be fairly redundant and reliable, and support a huge potential number of clients, so I am looking into a clustering solution.
So far, I have found two clustering solutions for OpenFire:
-
The one in the Plugins Installation tool in OpenFire Admin GUI. This one does not seem to work, and throws a Java exception when you go to the Clustering page. Some people on the community seem to think it requires proprietary Oracle files to work (where do I obtain those, if so?) Others seem to be saying “oh, the new plugin doesn’t need those”.
-
The one available from Google Code called open-clustering, but upon emailing and corresponding with its developer, I was discouraged from using it, and he encouraged me to use option 1.
My intended network layout is attached, in case I explain it poorly…
I want to have multiple servers, with 1 unified set of login credentials. Servers will have SSL server-to-server connections, and clients will have an SSL connection to a server of their choice, or decided by round-robin DNS. Users on any server will be able to communicate with users on the other server, as though they’re on the same server, similar to how an IRC network is constructed.
I am more familiar with an IRC network than with a Jabber XMPP network. It is my growing understanding that XMPP is capable of actual mesh clustering? In IRC, there is a hub and leaf approach to networks, which creates single points of failure resulting in netsplits. Since I have setup IRC networks before, but never an XMPP network, I’m a little uncertain about this new topology from a technical standpoint.
It’s also my understanding that clustered OpenFire servers need to have the same MySQL database? That doesn’t make sense to me. Am I supposed to use the same MySQL server for all of my OpenFire cluster - creating a single bottleneck\point of failure, or am I totally missing something here? It seems to me the Jabber servers should be able to transfer all the needed data back and forth to keep their databases in sync. I’m not sure how multiple servers could share one database without running into conflicts of some kind?
____________________________________________________________________________
TL;DR: If you are running an OpenFire cluster, I would love to hear from you. It seems like there’s a fair amount of people asking about clustering but the responses are vague and not helpful to me as a newcomer. If my attached network map looks anything like yours - how did you do it?
**____________________________________________________________________________
**
I don’t want to invest significant time and resources into something that’s already been proven to be impossible, or isn’t going to be supported in future versions of the software. I’m fairly sure I didn’t miss a tutorial… I have been researching this for several days in my free time.
Thank you, and I look forward to finally getting somewhere on this project!
Cheers,
Kirk