在Rackspace Cloud中排队

时间:2011-12-04 12:46:19

标签: deployment cloud rabbitmq rackspace-cloud rackspace

我一直在使用EC2进行部署,现在我想尝试一下Rackspace,我的应用程序必须是可扩展的,所以我使用RabbitMQ作为主要的排队系统。前端的操作可能会导致需要执行的大量作业,我想在某处排队。

由于应用程序的预期负载配置文件,使用可扩展的基础架构(如机架云)是有意义的。现在我想知道排队工作最好的地方。在前端服务器上排队它们意味着前端服务器的数量只能在队列处理后才能被撤销,如果前端的峰值负载超过我们想要扩展的话,这会浪费资源向下并扩展处理队列项的计算机。

如果我们在数据库服务器上排队,我们将负载添加到单个机器上,在当前设置中已经是最可能的botleneck。你会如何设计这个?

是否有任何内置的Rackspace排队服务,如亚马逊SQS或其他东西?

3 个答案:

答案 0 :(得分:1)

他们没有像SQS那样的东西,但是你可以利用一些好的服务:

云文件

使用Akamai CDN - 将所有静态内容推送给您的客户(我在澳大利亚黄金海岸和云端文件公共内容来自布里斯班的某个服务器(美国服务器的13毫秒对250毫秒的ping时间)和the effect of distance on download speed - 由于用户的下载时间更短,而且在圣诞节热潮期间绝对不会堵塞Web服务器上的管道。

我使用它的方式是:

  1. 我创建了一个云文件容器;这会获得一个唯一的主机名。
  2. 我创建了一个指向该唯一主机名的CNAME DNS记录(例如:cdn.supa.ws)。
  3. 我使用cloudfuse在我的云服务器和家用Linux机器上安装目录。
  4. 然后直接将文件复制或上传到该目录,然后从http://cdn.yourdomain.com
  5. 提供

    将平衡器作为服务加载

    http://www.rackspace.com/cloud/cloud_hosting_products/loadbalancers/ - 基本上是一堆Zeus load balancers,可用于将请求推送到后端服务器。很酷,因为它们是API可编程的,因此您可以根据需要动态扩展并添加更多后端服务器。它们还具有很好的加权算法,因此您可以根据需要向特定服务器发送更多流量。

    内部VLAN

    我建议在云端服务器之间使用“内部IP”(10.x.y.z)(eth1接口)进行消息队列和数据库数据,因为它们可以为您提供更高的传出带宽上限。

    传出带宽(速度)上限:

    • 256 MB Ram - 10 Mb / s eth0 - 20 Mb / s eth1
    • 512 MB Ram - 20 Mb / s eth0 - 40 Mb / s eth1
    • 1 GB Ram - 30 eth0 - 60 Mb / s eth1
    • 2 GB Ram - 40 eth0 - 80 Mb / s eth1
    • 4 GB Ram - 50 eth0 - 100 Mb / s eth1
    • 8 GB Ram - 60 eth0 - 120 Mb / s eth1
    • 15.5 GB Ram - 70 eth0 - 140 Mb / s eth1

    eth1被称为内部VLAN,但它与其他客户共享,因此最好将eth1和eth0防火墙关闭,例如,只允许来自云服务器的mysql连接;如果你有非常敏感的东西,可以使用myqsl和ssl,以防万一:)

    MySQL即服务

    还有一个 MySQL即服务私有测试版。我还没有尝试过,但看起来它有很多潜在的冷静:http://www.rackspace.com/cloud/blog/2011/12/01/announcing-the-rackspace-mysql-cloud-database-private-beta/

答案 1 :(得分:1)

Rackspace不提供托管排队系统。

我已经在他们的云服务器上运行RabbitMQ超过2年了,事情还不错。

我还没有试过clustering,所以我不知道在那里设置是多么容易,也不知道它们在环境中的稳定程度。

答案 2 :(得分:0)

Beanstalkd只是摇滚 - 管作为pub-sub运行,可以像任何云供应商的魅力一样工作。设置3-7分钟。因为使用像队列这样的memcache,所以非常快速。

您可以用您选择的任何语言撰写工作人员。你不能错过这个。

链接: http://kr.github.com/beanstalkd/