Ejabberd MUC 拥有超过 5000 名用户

Ejabberd MUC with more that 5K users

Ejabberd 是可大规模扩展的服务器,这里 article 表明 Ejabber 可以支持 2M+ 并发用户。

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

  1. 为什么 Ejabberd 施加限制以在 MUC 中仅支持 5k 用户?
  2. 如何支持MUC超过5K用户?
  3. 集群能否缓解此限制?

提前致谢。

你用的是“用户”这个词,但显然你不是以人为本,以人为本,对吧?

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

那将是一个蟋蟀笼。

  1. Why Ejabberd impose the limitation to only support 5k Users in MUC?

因为让 5000 个人互相分享他们的状态并与其他 4999 个人聊天是没有意义的。

  1. How to support more than 5K users in the MUC?

很简单,直接编辑源代码,在5000中加一个0,重新编译,重新安装。但是,如果您的机器滞后,请不要抱怨。您自行承担风险。

  1. Will clustering be able to mitigate this limitation?

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

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