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で指定した時間前にレコードを自動的に削除する方法

推薦する

Nginx ロードバランシングの設定方法

目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...

CSS はコンテナ レベル (div...) タグを 1 つの位置 (ページの右端) に固定します。

コードは次のようになります。 。プロセス{ 境界線:1px 実線 #B7B7B8; 背景:#F8F8...

JavaScript のアンチシェイクとスロットリングの違いと実装

目次1. 手ぶれ補正2. スロットリング3. まとめ序文:フロントエンド開発者には、次の 2 つの要...

dockerでデプロイされたjenkinsでgitプログラムを実行する際の問題について

1. まず、gitを関連付けるときにエラーメッセージが報告されます: エラー: ビルドするリビジョン...

最初のReactページを作成する方法

目次Rractとは何ですか?背景React スキャフォールディングJSXとは何かRractとは何です...

protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobufの簡単な紹介Protobuf は、Google のオープンソースのシリアル化プロトコ...

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例

Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...

Chrome をクラッシュさせる CSS コードの行

一般的な CSS コードでは、UI レイアウトや互換性に関して軽微な問題が発生するだけです。しかし、...

Ubuntuはポート22を開きます

シナリオssh 経由で Ubuntu サーバーに接続するには、xshell ツールを使用する必要があ...

MySQL 百万レベルのデータページングクエリ最適化ソリューション

データベースからクエリする必要があるテーブルに数万件のレコードがある場合、すべての結果を一度にクエリ...

uniapp プロジェクトをデスクトップ アプリケーションとしてパッケージ化する方法

Electronのインストール cnpm 電子をインストール -g electron-package...

タブバーのいくつかの実装方法(推奨)

タブ: カテゴリ + 説明タグバー: カテゴリ => ユーザーに現在地と目的地を知らせる1. ...

Mac での MySql の詳細なインストールと構成

1.ダウンロードしてインストールする公式ウェブサイトからコミュニティ エディションの dmg インス...

nginx の 2 つのモジュールの proxy_pass の違い

1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...