Java Openfire服务器在EC2上的不可靠行为

Java Openfire服务器在EC2上的不可靠行为,java,amazon-ec2,xmpp,openfire,heap-memory,Java,Amazon Ec2,Xmpp,Openfire,Heap Memory,我们正在AmazonEC2Linux实例上使用OpenFireServer3.7.1作为聊天应用程序 目前,我们正处于初始开发阶段,我们正在使用4或5个并发用户对其进行测试。 现在,我们又遇到了openfire server的问题: 1) Java堆空间异常 2) java.net.BindException:地址已在使用中 3) 它们都导致5222端口未侦听,而9090的openfire管理控制台工作正常 最终,当我停止所有openfire进程,然后重新启动它时,它又恢复正常 我想知道,这是o

我们正在AmazonEC2Linux实例上使用OpenFireServer3.7.1作为聊天应用程序

目前,我们正处于初始开发阶段,我们正在使用4或5个并发用户对其进行测试。 现在,我们又遇到了openfire server的问题:

1) Java堆空间异常

2) java.net.BindException:地址已在使用中

3) 它们都导致5222端口未侦听,而9090的openfire管理控制台工作正常

最终,当我停止所有openfire进程,然后重新启动它时,它又恢复正常

我想知道,这是openfire版本3.7.1还是EC2中的一个bug,在打开端口5222时有一些问题。当1000s用户同时使用Openfire服务器时,我真的很担心它的性能

解决者:

  • 禁用政治公众人物

  • 增加Openfire JVM参数


  • Java堆空间异常在Openfire中很常见,您可以检查JVM参数并增加参数。根据我的经验,有几个案例导致了这些问题:

    • 客户使用同理心
    • 一些插件提供好友列表/白名单/黑名单等(必须与用户的名单做一些事情)
    您需要确保在EC2防火墙设置中打开了端口5222和5223(某些客户端可能使用旧的SSL端口)

    如果您计划拥有数千名用户,我建议您获取静态IP地址(您不需要提及当前配置)。另外,签出-被证明比openfire更可靠。

    用户对openfire来说根本不应该是问题。它已经在测试中看到了250K。它总是决定用户在做什么


    Openfire中有一个已知的已修复但尚未发布的版本。它与PEP有关,如果您认为可行,可以关闭PEP以避免此问题。

    thnks,我禁用了PEP。现在,如果这种情况持续下去,我将负责管理。Thnks for insight。我没有使用任何插件/移情。端口已在EC2上打开。这个问题通常发生在一天中的特定时间。可能是它积累了所有的java内存,直到那时,java堆才发生。正如有人建议我最近禁用了PEP,让我们看看是否有改进。同时,您能告诉我如何在openfire中增加与内存相关的参数吗。