我应该为下面的应用程序使用哪种架构?
在我们的 SAAS 应用程序中,每个客户都会获得一个文件目录。这些文件可能非常大,需要非常快速地读取和写入。有时,客户会看到非常重的使用量,并且需要将文件复制到多个盒子以处理负载。对文件的任何更改都需要在合理的时间段(不到一分钟)内复制。
每个客户都有一个子域 customername.mydomain.com。不知何故,对这个子域的请求需要被路由到一个包含客户文件的盒子。需要将客户添加到系统中并动态分配给盒子。
我想只拥有一个服务器列表,然后对客户名称进行散列以分配客户,但这使得添加额外的框变得困难。
我们使用亚马逊来托管应用程序。S3 可以成为解决方案的一部分。但是文件不能单独存在于 S3 上,因为没有快速随机访问文件内容。
我需要知道如何将客户分配到盒子、如何管理复制、如何正确路由子域以及如何以动态方式进行。我们首选的语言是 Java,但其他语言也可以。
我意识到这是一个巨大的问题。我怀疑是否有开箱即用的解决方案,但如果有,请列出它们。