我们在 Amazon Ec2 Linux 实例上使用 openfire 服务器 3.7.1 作为聊天应用程序。
目前,我们处于初始开发阶段,正在使用 4 或 5 个并发用户进行测试。 现在,我们遇到了 openfire 服务器的问题:
1)Java堆空间异常。
2) java.net.BindException:地址已在使用中
3) 它们都会导致 5222 端口不监听,而 9090 的 openfire 管理控制台工作正常
最终当我停止所有 openfire 进程然后重新启动它时,它再次恢复正常。
我想知道,这是否是 openfire 3.7.1 版本中的错误,或者 EC2 在打开端口 5222 时存在一些问题。当 1000 个用户同时使用 Openfire 服务器时,我真的很担心 Openfire 服务器的性能?
解决方案:
禁用 PEP。
增加 Openfire JVM 参数
最佳答案
Java堆空间异常是Openfire常见的问题,您可以检查您的JVM参数并增加参数。根据我的经验,有几种情况会导致这些问题:
- 使用 Empathy 的客户。
- 一些提供好友列表/白名单/黑名单等的插件(必须对用户的花名册列表执行某些操作)。
您需要确保在 EC2 防火墙设置中打开端口 5222 和 5223(某些客户端可能使用旧的 SSL 端口)。
如果您计划拥有数千个用户,我建议您获取静态IP地址(您不要提及您当前的配置是什么)。还结账jabberd - 事实证明比 openfire 更可靠。
关于java - EC2 上 Openfire 服务器的不可靠行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042601/