跨群集管理大型对象。

时间:2012-05-11 18:13:51

标签: architecture hash routing distributed-computing cluster-computing

我应该在下面的应用中使用哪种架构?

在我们的SAAS应用程序中,每个客户都会获得一个文件目录。这些文件可能非常大,需要非常快速地读取和写入。有时,客户会看到非常繁重的使用情况,并且需要将文件复制到多个框中以处理负载。对文件的任何更改都需要在合理的时间段内(不到一分钟)进行复制。

每个客户都有一个子域名customername.mydomain.com。不知何故,对此子域的请求需要路由到包含客户文件的框。客户需要添加到系统中并动态分配到框中。

我想的只是拥有一个服务器列表,然后在客户名称上进行散列以分配客户,但这使得添加其他框很困难。

我们正在使用亚马逊来托管该应用。 S3可以是解决方案的一部分。但是这些文件不能单独存在于S3上,因为没有对文件内容的快速随机访问。

我需要知道如何将客户分配到盒子,如何管理复制,如何正确地路由子域,以及如何以动态方式执行。我们的首选语言是Java,但其他语言也可以。

我意识到这是一个巨大的问题。我怀疑是否有开箱即用的解决方案,但如果有,请列出它们。

1 个答案:

答案 0 :(得分:0)

老实说,如果您已经在AWS中,请使用云形成按需启动一个框,在前面添加一个ELB来处理您的路由问题。

在框启动时,将S3中该客户的文件下载到本地磁盘上。

设置一个每30-60秒运行一次的作业,以检查S3上的新文件,并根据需要推送/拉下它们。