たとえば、多くのクライアントにサービスを提供する製品 (モバイル アプリケーション) を作成したとします。当初、私はデータ コンプライアンスの問題について考えず、すべてのデータを 1 つのサーバーに保存していました。現在、これらのクライアントは、データが異なるサーバーに保存されるような方法でデータ コンプライアンスを求めています。このデータを分離し、アプリケーションの変更を最小限に抑えて異なるサーバーに書き込み、クライアントに準拠し、多くのコストが発生しないようにする最善の方法は何ですか?
ここでプロキシ/ロード バランサーを使用できますか?
すべての CRUD 操作でクライアント ID を取得していると想定できます。これに基づいて、プロキシにいくつかのルールを記述し、トラフィックをそのクライアント用に指定されたデータベース サーバーに迂回させることができます。これは、データベースで CRUD 操作を実行する前に、プロキシが着信ステートメントを解析し、それに応じてルーティングする必要があることを意味します。
基本的に、ID 1、2、および 3 の 3 つのクライアントがあるとします。データベース操作を、クライアント 1 の場合はデータベース A、クライアント 2 の場合はデータベース B、クライアント 3 の場合はデータベース C にルーティングする必要があります。
HAProxy、nginx、ProxySQLなどでこの種のことができると思いますが、それが機能するかどうかはよくわかりません。
これは大規模またはその他の場合に実行可能なオプションですか? そうでない場合、アプリケーションの変更が最小限である他のオプションは何ですか?
編集: データベース A、データベース B、およびデータベース C のスキーマはまったく同じです。