我们正在构建一个XMPP应用程序,我们选择ejabberd作为我们的服务器。 我们在协议级别上做了很多更改以匹配我们的用例。 但是,我们不满足于ejabberd如何将应用程序逻辑与其mnesia后端相结合。我们希望将除了持有会话的表之外的所有mnesia表移动到其他节点,以便分离我们的系统以便于维护和调试,并避免资源与ejabberd控制逻辑竞争。我们知道,如果是这种情况,将会受到延迟的影响。我们的问题是,采用这种方法是更好的设计吗?我们是否会面临更多分销问题?还有什么? 请详细说明您的选择。
答案 0 :(得分:0)
实际上,存储数据的模块是围绕后端概念设计的。他们对Mnesia并不紧张。您可以在现有代码中检查每个模块后端的API。您将看到通常存在可存储在关系数据库,Riak,Redis等中的模块。
您可以使用完全相同的API来实现自己的自定义后端。