2

我应该为下面的应用程序使用哪种架构?

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

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

我想只拥有一个服务器列表,然后对客户名称进行散列以分配客户,但这使得添加额外的框变得困难。

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

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

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

4

1 回答 1

0

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

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

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

于 2015-04-10T03:36:57.820 回答