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

推薦する

CentOS7.5 の MySQL8.0.19 のインストールチュートリアルの詳細な手順

1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...

JS を使用して Web ページのウォーターフォール レイアウトを実装する方法

目次序文:ウォーターフォールレイアウトとは何ですか?達成方法: 1. 画像を取得する2. 画像の帯域...

MySQL の 3 つの浮動小数点型 (float、double、decimal) の違いと概要について簡単に説明します。

各浮動小数点型のストレージ サイズと範囲は、次の表に示されています。タイプサイズ範囲(符号付き)範囲...

Vueは、センシティブな単語フィルタリングコンポーネントを検出するためのさまざまなアイデアを実装しています。

目次前面に書かれた要件分析 v1アイデア1: インターセプションメソッドを使用して入力ボックスの入力...

React Nativeプロジェクトフレームワークの構築経験

React Native は、2015 年 4 月に Facebook によってオープンソース化され...

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...

Linux ディスクのマウント、パーティション分割、容量拡張操作を実装する方法

基本概念操作の前に、まずいくつかの基本的な概念を理解する必要がありますディスクLinux システムで...

dockerでrabbitmqをインストールすると管理ページに入れなくなる問題

1. 環境整備Tencent Cloud Server CENTOS 7 バージョンDockerコン...

MySQLの外部ネットワークアクセス権を開く方法

以下のように表示されます。主に認証コマンドを実行します: 2つの方法1. 任意のホストがユーザー b...

WeChatミニプログラムをTencent Mapsに接続する2つの方法

最近、WeChat アプレットを作成しているのですが、いくつか問題が発生しました。インターネットでい...

MySQL コマンドラインモードアクセス操作 MySQL データベース操作

使用環境cmd モードで、mysql --version と入力します (インストールされている M...

ウェブデザイナー職の面接でよくある質問と回答

1. ASP.NET Web アプリケーションのテンプレートとは何ですか? それらの違いは何ですか?...

MySQLの不合理なMaxIdleConnsにより接続が短くなる

1 背景最近、Shimo Document のオンライン ビジネスでパフォーマンスの問題が発生しまし...

インターフェーステストプラットフォームを構築するためのDjango+Vue+Dockerの詳細な説明

1. 冒頭の2つの単語みなさんこんにちは。私の名前はLin Zonglinです。私はテストエンジニア...

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...