以下のアプリにはどのようなアーキテクチャを使用すればよいですか?
当社の SAAS アプリでは、各顧客がファイルのディレクトリを取得します。これらのファイルは非常に大きくなる可能性があり、非常に迅速に読み書きする必要があります。場合によっては、使用率が非常に高く、負荷を処理するためにファイルを複数のボックスに複製する必要があります。ファイルへの変更は、妥当な時間内 (1 分未満) に複製する必要があります。
各顧客はサブドメイン、customername.mydomain.com を取得します。どういうわけか、このサブドメインへのリクエストは、顧客のファイルを含むボックスにルーティングされる必要があります。顧客をシステムに追加し、ボックスに動的に割り当てる必要があります。
サーバーのリストを取得し、顧客名をハッシュして顧客を割り当てることだけを考えていましたが、ボックスを追加するのが難しくなります。
アプリのホストには Amazon を使用しています。S3 はソリューションの一部です。しかし、ファイル コンテンツへの高速なランダム アクセスがないため、ファイルを S3 だけに置くことはできません。
顧客をボックスに割り当てる方法、レプリケーションを管理する方法、サブドメインを適切にルーティングする方法、および動的な方法でそれを行う方法を知る必要があります。私たちの優先言語は Java ですが、他の言語も問題ありません。
私はこれが巨大な質問であることを理解しています. すぐに使えるソリューションがあるとは思えませんが、ある場合はリストしてください。