Xmpp

ejabberd 分群在概念上是如何工作的?

  • September 1, 2014

我是 XMPP 和 ejabberd 的新手。如果有專家能告訴我,ejabberd“集群”是如何工作的,我將不勝感激。我搜尋了很多,但找不到有關此的任何規格。

它是否只是通過 http 複製所有數據(因此客戶端連接的位置無關緊要)?還是會通過 DNS RR 完成?

似乎集群是在 DNS 級別(或前端 LB)上完成的,並且基礎是集群數據庫/持久層。他們為此提供了幾種實現。

它使用 Erlang 的集群功能: - 向 erlang 集群中任何節點上的任何程序發送消息的能力 - 它還使用 mnesia,erlang 的分佈式數據庫來儲存路由表,其中包含 JID <-> 客戶端程序 ID 映射。

當消息進入 ejabberd 時,它會在此表中查找收件人 JID,並將其發送到它找到的 PID。這個過程可以在集群中的任何地方,erlang 負責路由它。

引用自:https://serverfault.com/questions/261147