拥有超过 5K 用户的 Ejabberd MUC

问题描述

Ejabberd 是可大规模扩展的服务器,这里的 article 表明 Ejabber 可以支持 200 万以上的并发用户

但对于多用户聊天(MUC),Ejabber 仅支持 5K 用户(根据 ejabberd 模块代码here)。 Ejabbered 应该能够处理更多的用户,所以我向 Ejabberd Gurus 提出问题:

  1. 为什么 Ejabberd 限制在 MUC 中仅支持 5k 用户
  2. 如何在 MUC 中支持超过 5K 的用户
  3. 聚类能否缓解这种限制?

提前致谢。

解决方法

  1. 为什么 Ejabberd 限制在 MUC 中仅支持 5k 用户?

因为让 5000 人互相分享他们的存在,并与所有其他 4999 人聊天是没有意义的。

  1. 如何在 MUC 中支持超过 5K 的用户?

很简单,直接编辑源码加个0到5000。重新编译,重新安装。但是,如果您的机器滞后,请不要抱怨。这样做的风险由您自己承担。

  1. 聚类能否缓解这种限制?

不,因为每个房间都由一个进程处理,并且该进程位于特定的机器中。

XEP-0045 (MUC) 并非旨在在同一个房间内拥有数千个聊天机器人。是用来聊天的。如果您没有人聊天,请使用适合您的任务的工具,例如 MucSub 或 PubSub...

,

您使用的是“用户”这个词,但显然您不是在考虑人,不是人,对吗?

我希望您不打算让 5.000 人加入和离开一个聊天室,每次他们加入和离开聊天室时都会与其他 4.999 人分享他们的状态。我希望您不要指望这 5.000 人向所有其他 4.999 人发送公开信息。

那将是一个板球笼。