java - EC2 上 Openfire 服务器的不可靠行为

标签 java amazon-ec2 xmpp openfire heap-memory

我们在 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 服务器的性能?

解决方案:

  1. 禁用 PEP。

  2. 增加 Openfire JVM 参数

最佳答案

Java堆空间异常是Openfire常见的问题,您可以检查您的JVM参数并增加参数。根据我的经验,有几种情况会导致这些问题:

  • 使用 Empathy 的客户。
  • 一些提供好友列表/白名单/黑名单等的插件(必须对用户的花名册列表执行某些操作)。

您需要确保在 EC2 防火墙设置中打开端口 5222 和 5223(某些客户端可能使用旧的 SSL 端口)。

如果您计划拥有数千个用户,我建议您获取静态IP地址(您不要提及您当前的配置是什么)。还结账jabberd - 事实证明比 openfire 更可靠。

关于java - EC2 上 Openfire 服务器的不可靠行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042601/

相关文章:

java - Camel : How to force enrich() do not invoke aggregate() in case of exception occurred on getting data from resource before version 2. 14

java - 将 Unicode 宽字符更改为 ASCII

amazon-ec2 - 在 aws 上使用弹性 IP 地址公开 kubernetes 服务

linux - 更改 ec2 上的 pid_max

mysql - 未找到 Ejabberd MySQL bean 文件

Java泛型字段

java - 附加到 JTextArea 不会在 '\n' 上创建换行符

Docker 容器基于 OSX 而不是 Amazon Linux 构建

javascript - 如何从 node-xmpp 请求中获取响应?

php - XMPP 和 PHP 流式传输