Wanted: How to setup ejabberd in a clustered setup (Windows or Linux)

Everything I have found with regards to ejabbered is very old and incomplete it seems for documentation

I'm looking for a complete guide from start to finish from a clean install on how one might be able to setup ejabberd in a clustered setup on multiple servers. I don't even care which operating system it is for (as long as it's a current OS). Everything from initial install to setting up any type of srv records if necessary.

Does this exist anywhere?

b0ot wrote: Everything I have

b0ot wrote:

Everything I have found with regards to ejabbered is very old and incomplete it seems for documentation

I'm looking for a complete guide from start to finish from a clean install on how one might be able to setup ejabberd in a clustered setup on multiple servers. I don't even care which operating system it is for (as long as it's a current OS). Everything from initial install to setting up any type of srv records if necessary.

Does this exist anywhere?

Hahahahaha. Hahahahaha. Hahahahaha. Wait. What? Hahahahaha. No.

Here's what helped me piece it together:
https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.11/doc/guid...
http://www.ejabberd.im/node/5669
http://www.ejabberd.im/node/3055
http://chad.ill.ac/post/35967173942/easy-ejabberd-clustering-guide-mnesi...
http://prasadkancharla.blogspot.com/2011/11/setting-up-ejabberd-clusteri...
http://tdewolf.blogspot.com/2009/07/clustering-ejabberd-nodes-using-mnes...
http://www.erlang.org/doc/apps/mnesia/users_guide.html

Also the following epiphanies helped me:
It's not ejabber clustering or even erlang clustering, it's mnesia clustering with ejabber running on top of the mnesia database.

Therefore, if you're running any part of a MySQL back end, the MySQL data will not be clustered.
That said, as far as I can tell, you cannot use MySQL clustered NDBCluster as the backend. This is because NDBCluster storage types don't seem to support foreign keys or indexes with TEXT or BLOB column types. Nor the index prefix lengths in the Ejabberd MySQL schema. Someone mentioned that they overcame the index prefix lengths but had constant roster issues. I don't know how to get past the foreign key thing at all.

I got Ejabberd clustered but since most of my backend was in MySQL, the most important thing about this is in the mnesia session and http-bind tables, which ARE still in mnesia and allow both Ejabberd instances to respond to the same session information. I'm considering converting everything over to mnesia because my current setup uses MySQL as master/slave with both Ejabberd instances connecting to the master. Also, I think everything is really geared towards mnesia/erlang.

Little did I know I'd start to have to learn Erlang when I started this project. Not the end of the world and maybe even a bit fun but still...

Syndicate content