2

私は大規模なモノリシック webapp を持っています。webapp の特定のセクションに変更を加えるたびに、アプリ全体をデプロイする必要があります。

これを機能に基づいて小さなチャンクに分割したいと思います(たとえば、銀行のWebサイトでは、オンラインバンキング機能から情報を分離したいので、オンラインバンキング機能に変更を加えた場合、その部分を展開するだけです)

ここでの課題は、アプリケーション全体で共有される共通クラスなど、Web アプリケーション全体で特定の共通要素が存在することです。

webapp のパーティショニングを行うさまざまな方法について何か考えはありますか? ありがとう。

4

1 に答える 1

1

これは tomcat 固有のものではありませんが、一般に、Web アプリケーションを分割する場合、分散された部分間で異なる状態を共有する何らかの方法が必要になります。セッション情報のデータベースまたは memcached ストアを使用してこれを行うことができますが、各アプリケーションが共通のセッション データを読み取れることを確認してください (一部のフレームワークはキーを使用してセッション データを暗号化し、読み取るためにすべて同じキーを持っている必要があります)。それ)。セッション情報用のほとんどの Cookie ストアが、アプリケーション間で Cookie が正しく保持されないような方法でハッシュされるとは思いません。

機能ごとに分類するのが最も理にかなっています。バックエンド コードを分離できる場所を確認します。適切な RESTful タイプの URL がある場合は、おそらくその URL を調べて、適切なパーティションを判断するのに役立てることができます。

また、個別に更新する大きな静的セクションがある場合は、おそらく tomcat 以外で提供する必要があります。

一般的なクラスの場合、クラスの実装を tomcat/lib フォルダーの jar に配置できます。それらはサーバー全体で利用できます。Web コンテキストにうまく合わせることはできず (コンテキストを渡さない限り)、サーバー全体を再起動して jar ファイルを更新し、Tomcat にリロードさせる必要があります。

おそらく、各パーティションで独立性を高め、何らかの方法で独立してコンパイルできるようにするインターフェイスを使用して、何かを解決できるでしょう。おそらく、いくつかのリモート メソッド呼び出しも、一般的な機能を 1 つの .jar または .war に移動するのに役立つでしょう。

于 2009-08-05T23:34:38.243 に答える