对不起伙计们,但我试图找出这个问题,但我没有得到我需要的东西。
我正在开发一个Android / iPhone应用程序,它将连接到Amazon的Ubuntu EC2上的RabbitMQ群集。
我需要计算它会是多少。我相信它会有~10万用户。 我正在配置代理,每个移动端点有一个用户和一个队列,它们将一直连接(使用basicConsume和manual ack - 我相信我不需要交易)。 这些用户和队列将由使用REST RabbitMQ端口的唯一PHP服务器创建。 移动端点将打开与basicPublish消息的另一个连接,这是我唯一的5个主题交换之一。这种交换需要传递最多~2k队列的消息。 每个移动端点每天将消耗大约20条消息(由其他端点生成,因此我不确切地知道它每天是20,2或2k消息;)。 每个邮件正文将只是用户通常键入的内容。我正在使用AMQP标头和参数来处理所有元数据。
我已经阅读过旧Nabble帖子中的资源使用情况,我正在尝试计算: 只是为了保持一个空闲连接服务器需要~66kb和8个进程(顺便说一句,我已经将心跳改为60s),所以:
100k连接* 66kb = 6.29Gb 100k连接* 8个进程= 800k进程(是否可以使用一台独特的机器?)
我还不知道是否需要保留所有消息。这时,我想不要坚持下去。
在我的疯狂中,我猜测群集中的两个“Linux on m3.xlarge EBS Optimized”(每个4个vCPU和15Gb内存,高I / O)可能适合这个项目。
我错了吗?
在这种情况下,您会使用什么以及如何计算?任何想要找出适合这个项目或项目的最佳架构的提示都不会忘记亚马逊的计算器对我来说都是金牌。
提前致谢。
答案 0 :(得分:0)
不,你没错很多
我有几个问题,但基本上归结为:
了解您的方案的唯一方法是正确理解您最苛刻的用户并了解他们的资源要求。
之后......乘以
您知道所有这些队列和所有这些消息的CPU要求是什么吗?您是否尝试在几个不同的实例上执行24小时的负载测试?然后你要做的就是计算实例的成本/小时。
当我们(我们公司)想要为项目测量必要的资源时,我们基本上会加载,我们将基本上编写一个系统来模拟服务器实例上的负载并将其推到最大 - 然后它给我们一张图片什么是实例大小等。使用AWS工具,您可以轻松获得I / O,带宽等的清晰图片。
希望这有帮助