1

テナントごとに一意のデータベース (MYSQL) を持つことでマルチテナントを実装するアプリケーションを取得しました。テーブル構造は同じです。各テナントの有効期限が切れるすべての製品を一覧表示する必要がありましたが、WSO2 の 1 つのデータ Web サービスにそれらすべてを組み込むにはどうすればよいでしょうか? テーブルの前にデータベースを付けてクエリを作成できることはわかっています。DB1.products から DB1.products.id、DB1.products.name を選択

各データベース (100 以上のテナント) に対してデータ ソースを定義する必要がありますか? データ サービス操作でデータベース名を入力変数として指定できますか? すなわち。?.products から ?.products.id、?.products.name を選択

ご協力ありがとうございました。乾杯、エルウィン

4

1 に答える 1

0

各テナント専用のデータベースからテナント固有の情報を取得する汎用データ サービスを使用することを意図している場合、これを実現する最もクリーンな方法は、SQL クエリを生成し、使用されるデータソースを動的に検出可能にすることです。 .

100 以上のテナントを使用しているため (WOW は膨大な数です :))、これらのテナント用に 100 以上のデータベースを作成している可能性もあります。したがって、JDBC URL、資格情報などのテナント固有のデータベース構成をラップする、各テナント (「testDS」としましょう) で同じ名前の炭素データソースを作成する必要があります。次に、データサービスを思いついた場合使用されるデータソースを前述のデータソースになるように構成すると、データソース機能がマルチテナンシーを完全にサポートするため、実行時に適切なテナント固有のデータソースが正しく選択されます。これにより、データベース名などを SQL クエリに渡すことができなくなり、データ サービス構成がよりクリーンで一般的なものになり、保守が容易になります。

于 2013-02-23T19:12:23.493 に答える