2

私のショップの誰かが、Spring フレームワークを使用してマルチテナンシーを実現する賢い方法を思いつきました。基本的に、一般的に使用されるサービスを使用してメインの親アプリケーション コンテキストを作成し、新しいテナントごとに、テナント固有の Bean を使用して子コンテキストを作成しました。これは非常にうまく機能し、その場で新しいテナントを立ち上げることができます。

現在、OSGI を使用するという厳しい要件があり、このモデルは崩壊しています。いくつかの異なるアプローチを試しましたが、うまくいかないか、VM を停止して新しいテナントを追加し、新しく宣言されたサービスを追加する必要があります。

4

3 に答える 3

2

親 OSGi フレームワークを作成してから、テナントごとに個別の OSGi フレームワークを作成します。システム バンドルを使用して、共有サービスを親フレームワークからテナント フレームワークにエクスポートします。

于 2013-03-05T01:34:11.717 に答える
1

残念ながら、これを行う標準的な方法はありません。

getService複数のフレームワーク アプローチ (これも自分で実装する必要があります) に代わるものは、テナント固有のフィルター構成に基づいて適切な OSGi サービスを取得するメソッドを実装する "コンテキスト" オブジェクト (Spring アプリケーション コンテキストなど) を導入することです。

Gyrex でも似たようなことをしました。ただし、これはカスタム ソリューション (オープン ソースですが) であり、OSGi 標準ではありません。

于 2013-03-05T07:28:13.707 に答える