Jon*_*Cox 10 xmpp amazon-ec2 tigase
有没有人有在亚马逊的EC2上运行集群Tigase XMPP服务器的经验,主要是我希望了解任何可能让我失望的事情,这是非常明显的.(例如,显然在EC2上运行Ejabberd可能会因Mnesia而导致问题.)
或者,如果您有任何关于在Ubuntu上安装和运行Tigase的一般建议.
额外的信息:
我正在开发的系统使用XMPP只是为了在移动应用程序和服务器之间进行通信(几乎是实时的).
用户数量最初会很小,但希望会增长.这就是系统需要可扩展的原因.大概只有几千个用户你不需要一个cc1.4xlarge EC2实例?(否则这将是非常昂贵的运行!)
我计划将Amazon RDS中托管的MySQL数据库用于XMPP服务器数据库.
我还计划使用SleekXMPP创建一个用Python编写的外部XMPP组件.正是这个外部组件完成了服务器的所有"工作",因为我正在制作的应用程序与即时消息完全不同.对于这部分,我还没有弄清楚如何将用Python编写的外部XMPP组件连接到Tigase服务器.该文档似乎表明组件是专门为Tigase编写的 - 而不是一般的XMPP服务器,使用XEP-0114:Jabber组件协议,正如我所料.
有了这些额外的信息,如果你能想到我应该知道的任何其他事情,我会很高兴知道.
谢谢 :)
Art*_*zyc 26
我有很多经验.我认为有很多非明显的问题.就像运行像Tigase这样的应用程序的唯一可靠实例是cc1.4xlarge.其他人会导致CPU可用性问题,这只是一个乐透,你是否有幸在一个不忙于其他人工作的服务器上运行你的服务.
此外,您需要具有最高I/O的实例,以确保它可以应对网络流量.高I / O尤其适用于数据库实例.
不确定这是否显而易见,但EC2上的主机名出现此问题,每次启动实例时主机名都会更改,IP地址也会发生变化.Tigase集群对主机名非常敏感.有一种方法可以强制/更改实例的主机名,因此这可能是解决问题的方法.
当然,我所说的是数百万在线用户的集群,以及每秒高达100k XMPP的流量.通常,对于大型安装,使用专用服务器会更便宜,更有效.
通常Tigase在Amazon EC2上运行得非常好,但您确实需要最新的SVN代码,因为它在云上进行测试后添加了大量优化.如果您提供有关服务的更多详细信息,我可能会提供更多建议.
更多评论:
如果涉及成本,专用服务器总是更便宜的选择,以持续运行服务.除非您计划每小时打开/关闭服务器,否则我建议您去寻求一些专门的服务.成本较低,性能更可预测.
但是,如果您真的想/需要坚持使用Amazon EC2让我给您一些具体的数字,下面是一个实例列表以及该集群能够可靠处理的在线用户数:
还有一些评论:
这就是说我认为安装高达10k的在线用户你应该没问题.但是,其他因素如名册大小非常重要,因为它们会影响流量和负载.此外,如果您有其他元素产生大量流量,这将会给您的系统带来负担.
在任何情况下,如果没有一些测试,就无法确定系统的行为,或者它是否可以处理负载.
关于组件的最后一个问题:
当然,Tigase支持XEP-0114和XEP-0225连接外部组件.所以这不应该是用不同语言编写的组件的问题.另一方面,我建议使用Tigase的API来编写组件.它们既可以作为内部Tigase组件部署,也可以作为外部组件部署,这对于开发人员来说是透明的,您不必在开发时担心这一点.这是API和框架的一部分.此外,您可以使用Tigase框架中的所有商品,脚本功能,监控,统计信息,更容易的开发,因为您可以轻松地将代码部署为测试的内部组件.你真的不必担心任何XMPP特定的东西,你只需要填充processPacket(...)方法的主体,就是这样.在Tigase网站上应该有足够的所有这些在线文档.
另外,我建议阅读Python对多线程的支持以及它在非常高的负载下的行为.过去不是那么好.