[nycbug-talk] Load Balanced jabber server in FreeBSD ports?
bcully at gmail.com
Mon Dec 19 20:45:39 EST 2011
On Dec 19, 2011, at 8:27 PM, Matt Juszczak wrote:
> Can anyone recommend a simple jabber server that supports load balacing and/or horizontal scaling, perhaps with a shared back end database and simple load balancer, preferably available in the FreeBSD ports collection?
> Clustering (ie: being fault tolerant) isn't as important as being able to handle more users than one server can handle.
IIRC, ejabberd is in ports. Out-of-the-box it can handle more load than any other XMPP server out there and is extremely reliable, mostly due to running on top of Erlang. It does clustering as well, once again using Erlang's native clustering support.
There are /no/ servers that I know of that do real horizontal scaling, although you can take most of them and fake it using domain-based sharding or other such techniques, and that's hardly a simple solution. Clustering will work for most people, but mainly as a fail-safe, not as much for scaling, since they all rely on ACID-compliant databases, which will always prove a bottleneck to scaling at some point.
ejabberd will be your best bet. OpenFire is basically dead in the water and rarely gets any updates or support anymore. The C based ones are all at least as bad. The only alternative is Prosody, which is fast and works well, but it's a single-threaded design that attempts to hack around being single-threaded by using coroutines. If you don't need to modify it, though, it's worth looking at (but don't expect it to use more than one CPU, it won't).
More information about the talk