3

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

由于应用程序的预期负载配置文件,使用机架空间云等可扩展基础架构是有意义的。现在我想知道最好在哪里排队工作。在前端服务器上排队意味着前端服务器的数量只能在处理完队列后缩减,如果前端的峰值负载结束,这是一种资源浪费我们想要扩展它在处理队列项目的机器上缩小和放大。

如果我们在数据库服务器上对它们进行排队,我们会将负载添加到单台机器上,在当前设置中这已经是最有可能的瓶颈。你会怎么设计这个?

Rackspace 是否有任何内置队列,例如 amazon SQS 之类的?

4

3 回答 3

1

他们没有像 SQS 这样的服务,但您可以利用一些好的服务:

云文件

使用Akamai CDN - 将您所有的静态内容直接推送给您的客户(我在澳大利亚黄金海岸,云文件公共内容来自布里斯班的某个服务器(13 毫秒与美国服务器的 250 毫秒 ping 时间),并且由于距离对下载速度的影响- 为您的用户提供更快的下载时间,而且在圣诞节高峰期间绝对不会堵塞网络服务器上的管道。

我使用它的方式是:

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

负载均衡器即服务

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

内部 VLAN

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

传出带宽(速度)上限:

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

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

MySQL 即服务

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

于 2011-12-05T12:08:07.867 回答
1

Rackspace 不提供托管排队系统。

我在他们的云服务器上运行 RabbitMQ 已经 2 年多了,一切都很好。

我还没有尝试过集群,所以我不知道在那里设置有多容易,也不知道它在他们的环境中有多稳定。

于 2011-12-07T03:36:43.917 回答
1

Beanstalkd 只是摇滚——Tubes 用作 pub-sub,并且可以像任何云供应商的魅力一样工作。设置 3-7 分钟。由于使用了类似队列的 memcache,因此速度非常快。

您可以用您选择的任何语言编写工人。这个你不能出错。

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

于 2012-12-20T04:31:32.137 回答