【发布时间】:2016-04-04 11:32:31
【问题描述】:
我们有一个包含大约 700,000 个持久聊天室的 ejabberd 集群。我们面临的问题是启动集群的第一个节点大约需要 1 小时,因为所有房间的 Erlang 进程都在该节点上启动。
即使在集群初始化并且我们说有 4 个节点正在运行之后,MUC 进程也不会在节点之间保持平衡。可以有一个节点使用 90% 的内存,而另一个节点使用 5%。
有没有办法一次启动一个集群的多个节点,让MUC负载从一开始就均匀分布,启动速度更快?
任何人都可以提出一种解决方案来平衡集群节点之间的 MUC 进程吗?
它现在的工作方式显然是不可扩展的,因为随着房间数量的增加,我们在集群中启动的第一个节点上需要越来越多的 RAM,而且启动时间也会增加。
非常感谢, 亚历克斯
【问题讨论】: