Tomcatを使用して共有ライブラリを設定し、同じjarを共有する

Tomcatを使用して共有ライブラリを設定し、同じjarを共有する

デプロイされるプロジェクトが増えるにつれて、Tomcat にデプロイされるリリース パッケージも増えていきます。このように、多くの同一の jar がロードされ、大量の永続ストレージ領域のメモリを占有することは避けられません。共有ライブラリを設定すると、同一の jar が 1 つだけロードされます。

これには次の利点があります。

1. 永続ストレージ領域のメモリ使用量を減らすために、異なるプロジェクトで同じjarをロードしないようにします。

2. 重複するjarファイルの読み込みが少なくなるため、Tomcatの起動速度が向上します。

1. 共有ライブラリの設定方法

方法1:

conf ファイルの下にある catalina.properties ファイルを変更し、shared.loader のパスを設定します。

絶対パスを設定します。

shared.loader="D:hs/develop/shared/lib","D:/hs/develop/shared/lib/*.jar"

その後、同じ jar を指定されたフォルダーの下に配置します。

または相対パスを設定します:

shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar"

次に、confと同じディレクトリに新しい共有ディレクトリを作成し、同じjarをlibに配置します。

方法2:

conf ファイルの下にある catalina.properties ファイルを変更し、common.loader のパスを設定し、共有ライブラリのパスを追加します。

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/shared/*.jar"

次に、libフォルダに共有ディレクトリを作成し、同じjarを共有ディレクトリに配置します。

2. catalina.home と catalina.base の違い

tomcat では、catalina.home と catalina.base は同じ場所を指しており、これは bin やその他のディレクトリの親ディレクトリです。

複数の Tomcat インスタンスをインストールしたいが、複数のソフトウェア バックアップをインストールしたくない場合は、これらの 2 つのプロパティを使用できます。tomcat ディレクトリでは、bin ディレクトリと lib ディレクトリのみが複数の tomcat インスタンスによって共有されます。conf、logs、temp、webapps、work などの他のディレクトリは、各 Tomcat インスタンスの独立したバックアップです。

現時点では、それらは異なる場所を指しています。

catalina.home (インストール ディレクトリ): bin および lib の親ディレクトリである公開情報の場所を指します。

catalina.base (作業ディレクトリ): conf、logs、temp、webapps、work の親ディレクトリである各 Tomcat ディレクトリのプライベート情報の場所を指します。

3. Tomcat6クラスローディングメカニズム

Commonclassloader :

$CATALINA_HOME/common ディレクトリ内のすべてのクラスと jar パッケージをロードします。詳細な構成については、$CATALINA_HOME/conf/catalina.properties ファイルの common.loader 構成を参照してください。このクラスローダーによってロードされたクラスは、サーバー クラス ローダーと Webapp クラス ローダーから参照できます。Commonclass ローダーは Tomcat の起動時に作成され、その親クラスローダーは System クラス ローダーです。

Server classloader :

Tomcat のコア クラス、$CATALINE_HOME/server ディレクトリ内のすべてのクラスと jar をロードする役割を担います。これは catalina.propreties の server.loader 構成で指定できます。Tomcat の起動時に作成され、その親ローダーは Commonclass ローダーです。

Sharedclass loader :

webapp の共通クラスをロードする役割を担います。これは、catalina.properties ファイルの shared.loader プロパティを通じてユーザーが指定できます。Tomcat の起動時に作成され、その親ローダーも共通クラス ローダーです。

Webappclassloader :

これは、各アプリの WEB-INF/classes および WEB-INF/lib の下のクラスをロードする役割のみを果たします。親ローダーは共有クラス ローダーですが、ロード戦略はデフォルトのクラス ロード メカニズムとは異なります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Tomcat プロセスの CPU 使用率が高い場合の解決策
  • SpringBootは組み込みTomcat実装手順を開始します
  • Tomcat は親の委任メカニズムを破壊して Web アプリケーションの分離を実現します。
  • Tomcatが親の委任メカニズムを破壊する方法についての簡単な説明
  • Tomcat の面接の質問が 15 問も出る、滅多にない機会です!

<<:  960 グリッドシステムの基本原理と使用法

>>:  Vueのprops設定の詳細な説明

推薦する

フロントエンドブラウザのフォントサイズが12px未満のソリューション

序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

Vueはel-tableを使用して列と行を動的に結合します

この記事の例では、el-tableを使用して列と行を動的にマージするVueの具体的なコードを参考まで...

HTMLにリンクを挿入する方法

各 Web ページには、URL () で識別されるアドレスがあります。通常、Web サイト内でリンク...

mysql における mydumper と mysqldump の比較

いくつかのテーブルまたは単一のデータベースのみをバックアップする場合は、innobackup よりも...

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

Vueは複数のカウントダウンを同時に設定する機能を実装しています

この記事の例では、複数のカウントダウンを同時に設定するためのVueの具体的なコードを参考までに共有し...

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...

Vue + OpenLayers クイックスタートチュートリアル

Openlayers は、WebGIS クライアント向けのモジュール式で高性能かつ機能豊富な Jav...

JavaScript でウェブ プレーヤーを実装する

今日は、JavaScript を使用して Web ページ上にプレーヤーを作成する方法を紹介します。誰...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

JavaScript の基礎: スコープ

目次範囲グローバルスコープ関数のスコープもし、スイッチ、のために、その間ブロックスコープスコープチェ...

スケルトンスクリーン効果を実現する CSS

ネットワーク データを読み込むときは、ユーザー エクスペリエンスを向上させるために、通常は円形の読み...

MySQL ソート機能の詳細

目次1. 問題のシナリオ2. 原因分析3. 解決策4. 知識を広げる4.1 クエリの最適化を制限する...

nginx をプロキシ キャッシュとして使用する方法

キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることで...