我们在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时会遇到一些问题。当1000s用户同时使用它时,我真的很担心Openfire服务器的性能吗?
解决方案:
禁用PEP。
增加Openfire JVM参数
答案 0 :(得分:1)
Java堆空间异常是Openfire常见的,您可以检查JVM参数并增加参数。根据我的经验,有几个案例导致了这些:
您需要确保在EC2防火墙设置中打开端口5222和5223(某些客户端可能使用旧的SSL端口)。
如果您计划拥有数千名用户,我建议您获取静态IP地址(您没有提到您当前的配置)。结帐jabberd - 证明比openfire更可靠。
答案 1 :(得分:1)
1000s of concurrent用户根本不应该成为Openfire的问题。它已经在测试中看到了250K。它总是决定用户在做什么。
Openfire中已知memory leak已修复但尚未发布。它与PEP有关,如果可行的话,PEP可以关闭以解决这个问题。