我的公司在其 XMPP Android 应用程序中使用 OpenFire 作为服务器端,使用 smack 作为客户端。
AWS 似乎是一项很好的可扩展服务,可以满足我们的需求。我们用它来测试我们的应用程序,但我担心服务器会在 2 万到 5 万用户的情况下崩溃。
我有两个问题:
- AWS 是否适合 XMPP(OpenFire)服务器?优点和缺点是什么?
- 我如何构建这样一个应用程序,至少可以处理 20k 个在线用户,并且假设有 2k 个开放的聊天室?
- 有没有针对这类东西的具体教程?
就服务器成本而言,钱不是问题。现在对我们来说最重要的是时间。
答案1
AWS 将毫无问题地满足您的预期,但需要注意 EC2 实施中的问题
- 当底层节点处于高负载状态时,你将失去 CPU 周期,因此你的机器有时可能无法提供足够的 CPU 能量
- 磁盘 I/O 会比普通机器慢一点
除此之外,Openfire 确实有一个集群解决方案,它是商业的,据我所知,它背后的公司已经倒闭了(而且他们还没有开源,天哪),我一直试图联系他们自己获取集群解决方案,但没有成功。
所以如果您选择 Openfire,您将被困在一台服务器上,必须承担所有的工作负载,这听起来有点令人紧张,因为您谈到的数字,如果您想从 Openfire 开始,它看起来是一个很好的简单方法,但是当你开始成长时,你需要意识到你的选择 ;)
有关教程,请参阅 Openfire 指南http://ubuntuforums.org/showthread.php?t=525670,还不错:)