Hi,
For now, we are using openfire, but i am investigating ejabberd for a while and i successfully managed clustering work on ejabberd, now I run as many servers as i want/need.
The main question in my mind is: how is ejabberd highly available. In short, my development system includes one mysql machine (mysql-1.localdomain) ( just for testing purposes ) and two ejabberd machines (ejabberd-1.localdomain and ejabberd-2.localdomain)
I am directing all other machines to a single machine for mnesia tables by running that command :
erl -name ejabberd@ejabberd-2.localdomain \
-mnesia extra_db_nodes "['ejabberd@ejabberd-1.localdomain']" \
-s mnesia
All possible modules are changed to odbc ones.
In every place i search, i read that ejabberd does not have a single point of failure (SPOF) but isn't the ejabberd-1.localdomain become a SPOF itself ?
Is there any other workaround i can do for it ? ( Although i am not sure if they can find each other just using the same erlang-cookie file... ) Or is it the main thing that makes machines know about each other?
If this is the only way, what happens when ejabberd-1.localdomain fails? How do we change one of the existing machines to take that role again?
Thanks in advance.
rnkrygt wrote: Is there any
Is there any other workaround i can do for it ? ( Although i am not sure if they can find each other just using the same erlang-cookie file... ) Or is it the main thing that makes machines know about each other?
If this is the only way, what happens when ejabberd-1.localdomain fails?
You can try to add in extra_db_nodes all the other nodes in the cluster, not just the one you consider the 'master'. Also, if each node has a local copy of each table, when one node (or a group of nodse) become isolated from the other nodes, they can still continue working. Of course, the tables content of the different nodes will start to diverge.
How do we change one of the existing machines to take that role again?
ejabberd 2.1.3 has this command:
So, in the node you consider the master you run:
And in the other nodes: