0

I am a complete newbie to XMPP and ejabberd. I would be very thankful if some expert could tell me, how the ejabberd "clustering" works. I searched a lot, but could not find any specs about this.

Does it simply replicate all it's data via http (so it doesn't matter where a client connects)? Or will it be done via DNS RR?

user9517
  • 114,104
  • 20
  • 206
  • 289
jens
  • 235
  • 1
  • 2
  • 6

2 Answers2

2

It uses the clustering capabilities of Erlang : - The ability to message any process on a any node in the erlang cluster - it also uses mnesia, erlang's distributed database for storing the routing table, which contains the JID <-> client process id mapping.

When a message enters ejabberd, it looks up the recipient JID in this table, and sends it to the PID it finds. This process can be anywhere in the cluster, erlang takes care of routing it.

cstar
  • 21
  • 2
0

It seems that clustering is done on an DNS Level (or frontend LB) and the basis being a clustered database / persistence layer. They provide several implementations for this.

user9517
  • 114,104
  • 20
  • 206
  • 289
jens
  • 235
  • 1
  • 2
  • 6