TomcatコンポーネントはWebサーバーのアーキテクチャの進化を示しています

TomcatコンポーネントはWebサーバーのアーキテクチャの進化を示しています

1. tomcat とは誰ですか?

2. Tomcat は何ができますか?

Tomcat は Web コンテナです。Web アプリケーションは、Web サービスを提供する Tomcat にデプロイできます。1 つの Web コンテナに複数の Web アプリケーションをデプロイできます。これらの Web アプリケーションは、同じドメイン名または複数のドメイン名のサービスにすることができます。

3. tomcatのコンポーネントは何ですか

4. これらのコンポーネントを素早く理解するにはどうすればよいでしょうか?

Web コンテナを設計していると仮定すると、何を設計すればよいでしょうか?

最初の世代: 次の図に示すように、リクエストを受信し、リクエストを処理し、結果を Web コンテナー全体に返します。

第2世代: 独立した接続管理と処理ロジック

使用していくうちに、ソケット接続を開いて、処理ロジックを呼び出して、ソケット接続を閉じるのが毎回面倒だということが分かりました。そこで、コネクタにソケット接続のクローズを処理させ、コンテナにリクエストのビジネス ロジックを処理させるようにしました。これで完了です。

第3世代: 複数のネットワークプロトコルをサポート

当初の目的は、Web サーバーまたはコンテナーを設計することでした。より多くのプロトコルをサポートしたい場合は、異なるコネクタとコンテナーを作成する必要があります。このとき、サービスがコネクタとコンテナーをラップするようになります。

第4世代: 複数のWebアプリケーションのサポート

コンテナであるため、複数のアプリケーションをサポートする必要があります。各アプリケーションにはコンテキストがあり、互いに分離されています。複数のコンテキストをサポートするアーキテクチャは次のとおりです。

第5世代: 複数のドメイン名のサポート

コンテキストには、物理​​的な分離だけでなく、app1.example.com が context1 にアクセスし、app1.test.com が context2 にアクセスするなど、論理的な分離も必要です。

この時点でのアーキテクチャは次のようになります。ホストは複数のコンテキストをサポートできます。

5. 要約:

  • ウェブサーバーのコンポーネントは、サーバー-->機能を満たす
  • サーバー+コネクタ+コンテナ-->責任の分離
  • サーバー+サービス+コネクタ+コンテナ-->複数のプロトコルをサポート
  • サーバー+サービス+コネクタ+コンテナ+コンテキスト-->複数のアプリケーションをサポート
  • サーバー+サービス+コネクタ+コンテナ+ホスト+コンテキスト -->複数のドメイン名を持つ複数のアプリケーションをサポート

実際、これは社会的な分業の洗練に似た、分業とコンポーネントの洗練のプロセスです。コンテナは Tomcat ではエンジンとも呼ばれることに注意してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • コネクタコンポーネントから Tomcat のスレッドモデルを見る - BIO モード (推奨)
  • Tomcat コアコンポーネントとアプリケーションアーキテクチャの詳細な説明

<<:  MySQL並列レプリケーションの簡単な説明

>>:  MySQLで指定した時間前にレコードを自動的に削除する方法

推薦する

iptables および firewalld ツールを使用して Linux ファイアウォール接続ルールを管理する

ファイアウォールファイアウォールは一連のルールです。パケットが保護されたネットワーク空間に出入りする...

vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...

Linux システム AutoFs 自動マウント サービスのインストールと構成

目次序文1. サービスプログラムをインストールする2. メイン設定ファイルを書く3. サブ構成ファイ...

Vue を使用した Amap アプリケーション開発のベスト プラクティス

目次序文非同期読み込みパッケージコンポーネントコンポーネントの使用インターフェースをカスタマイズする...

MySQL データベースで UTF-8 エンコードを設定する方法

/etc/my.cnf または /etc/mysql/my.cnf ファイルを変更する [クライアン...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

CSSの4種類の配置の違いの詳細な説明

フロントエンド開発でよく使われるCSSの配置方法は、位置決めには、通常位置決め、相対位置決め、絶対位...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

CSS で 2 つの固定列と 1 つの適応列を実装するいくつかの方法

この記事では、CSS で 2 つの固定列と 1 つのアダプティブ列を実装するいくつかの方法を紹介し、...

Vueはログイン時に画像認証コードを実装します

この記事では、Vueログイン用画像認証コードの具体的なコードを例として紹介します。具体的な内容は以下...

面接の質問: 3 行 3 列のレイアウト、表は結合され、ネストされた表は許可されません

面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...

Vueは画像のズームとドラッグをサポートするリッチテキストエディタを統合しています

必要:ビジネス要件によると、写真をアップロードできる必要があり、アップロードされた写真はモバイル端末...

React と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

最近、 Three.jsでReactを使用して、720 度のパノラマ写真を閲覧できるプロジェクトを構...

オンラインMySQLオプティマイザの誤判断によって発生した低速クエリイベントを記録する

序文:非常に遅いクエリとリクエストのタイムアウトのアラートを受け取りました。メトリックを通じて My...

Ubuntu 20.04 をインストールした後に行うべきこと (初心者向けガイド)

Ubuntu 20.04 がリリースされ、多くの新機能が導入されましたが、慣れていない機能も多くあ...