Tomcatとコネクタの3つの動作モード

A、コネクタ

Tomcatのアーキテクチャでは、クライアントとの通信を処理するための主に担当コネクタ。リスニングポートの例コネクタ、クライアント・プロセスとエンジンへの要求からの要求を受け入れます。エンジンからの応答がクライアントに返されますが。


コネクタの種

コネクタに関連付けられているTomcatのクラスのソースコードは、次のカテゴリにorg.apache.coyoteパッケージ、コネクタを配置しました:

HTTPコネクタは、HTTPプロトコルに基づいて、HTTP接続を確立する責任があります。それは、NIOのHTTPコネクタ2とBIOのHttpコネクタで構成され、後者は、非ブロッキングIO長いリンクコメットサポートを提供します。
デフォルトでは、Tomcatはコネクタを使用しています。


プロトコルをカスタマイズサーバとTomcatの間の通信は、高い通信速度と効率を提供することができるためAJPコネクタ、ベースAJPプロトコルは、AJPは特にHTTPに設計されています。
このプロトコルを使用して、Apacheなどのサーバー、と統合します。


4月HTTPコネクタは、JNI呼び出して、Cで実装されています。(など、HTML、画像、CSS、JS、など)の静的リソースのパフォーマンスを向上させるための主要なアクセス。現在、ライブラリーは、任意のプロジェクトの利用可能独立しています。
Tomcatの4月のパフォーマンスを設定した後、非常に強いです。


Tomcatは、次のコネクタに実装されています。

上記の3つのコネクタの実装は、クライアントのHTTPリクエストから直接処理されている 
サポートHTTP / 1.1:org.apache.coyote.http11.Http11Protocol コネクタプロトコル。

org.apache.coyote.http11.Http11NioProtocol:HTTPのサポート /1.1プロトコル+ 新しいIOコネクタ。

org.apache.coyote.http11.Http11AprProtocol:使用4月(Apacheのポータブルランタイム)コネクタ技術、Nativの使用


三つの方法以下は、サーバーのWebに対処するために実装されてい
org.apache.coyote.ajp.AjpProtocol:プロトコルはAJPを使用しました(例えばHTTPD Apacheなど)のコネクタ、実現Webサーバ間の通信

プロトコルSJP:org.apache.coyote.ajp.AjpNioProtocol + 新IO 

org.apache.coyote.ajp.AjpAprProtocol:AJP + 4月


二、操作のTomcatのコネクターの三つのモード:バイオNIO 4月


3つのモードの比較:
画像


Tomcatのスレッドおよびその他の構成パラメータについては、私の他の記事を参照してください。https://www.cnblogs.com/weiyiming007/p/12599917.html


1、バイオ(ブロッキングI / O)

すなわち、それは従来のTomcatのJavaのI / O操作(すなわち、java.ioパッケージおよびそのサブパッケージ)を使用して表される、I / O操作を阻止します。HTTP / JAVAをベースにしています。1つの0.1コネクタ、Tomcat7デフォルトのバージョンは
バイオモードです。一般に、バイオモードは、3つの動作モードつの特性(要求を処理する唯一のスレッド)で最低です。Tomcatの以来 8.5バージョンが始まった、TomcatはBIOのためのサポートを削除します。


server.xml構成:

<コネクタポート=」8080 プロトコル=」HTTP / 1.1   
maxThreadsの =」150 
のConnectionTimeout =」20000 
にredirectPort =」8443” />


2、NIO(新しいI / O)

I / O性能を提供するために、元のBIO実施形態の欠如を補うJDKバージョン1.4を導入NIOモードので、ブロック指向のI / Oで、標準Javaコードで高速であって データを含んだクラスを定義し、ブロック内のデータを処理することにより、
NIOはBIOでは不可能であるネイティブコードを書かずに、基礎となるの使用を最適化することができる。

NIOモードは、Java SE 1.4以降で提供されます新しいI / O動作(即ちjava.nioのパッケージ及びそのサブパケット)。バッファに基づいて、およびI / O操作のJava APIを非ブロック提供され、それがより良い伝統的な同時I / O操作(バイオ)よりも持っている
業績。NIO Tomcatは、単純な動作モードを作るために、唯一のディレクトリ/conf/server.xml内のファイルをインストールする必要がありますは、Tomcatは、次のとおりです。


server.xml構成:

#プロトコル属性値を変更することができますorg.apache.coyote.http11.Http11NioProtocol:

< コネクタポート= "8080" プロトコル= "org.apache.coyote.http11.Http11NioProtocol" 
のConnectionTimeout = "20000" 
にredirectPort = "8443"  />


tomcat8の最新nio2、より速く、また推奨nio2


3、4月

4月(ときにApacheポータブルランタイム/ Apacheのポータブルランタイム)は、Apache HTTPサーバーのサポートライブラリです。あなたは、単にTomcatのJNIをするようにApache HTTP Serverへのダイナミックリンクライブラリコールのコア形成することになる、として理解することができ
、それによって大幅にTomcatの静的ファイルの処理性能を向上させること、ハンドルファイルの読み込みやネットワーク送信動作を。Tomcat上で実行されている非常に同時実行アプリケーションのための4月も好ましい形態のTomcat。私たちはTomcatの4月モードで実行されていない場合は、
Tomcatを起動したとき、私たちは、ログ情報に、以下の情報のようなものを見ることができます:

2013年8月6日夜04時17分49秒org.apache.catalina.core.AprLifecycleListenerのinit 
信息:本番環境で最適なパフォーマンスを可能にする4月ベースのApache Tomcatネイティブライブラリ
java.library.pathに上で見つかりませんでした:XXX / XXX(ここではパス情報)


操作の4月Tomcatの設定モードは、3つの動作モード比較的トラブルの一つです。公式文書によると、次の3つのコンポーネントをサポートするために、Tomcatの4月の必要性:

4月のライブラリー[4月のライブラリー] 

JNIラッパーは(libtcnative)Tomcatで使用される4月のための[ダイナミックリンクライブラリファイルは、Windowsオペレーティングシステムであれば簡単に言えば、のtcnative-1.dll現在と呼ばれている] 

のOpenSSLライブラリー[OpenSSLライブラリ]


さらに、動作モードNIO同じ構成は、また、対応する必要があるConnectorノードprotocolに属性値をorg.apache.coyote.http11.Http11AprProtocol

しかし、これらの操作は、前7.0.30必要に面倒なTomcatのバージョンのみが開始されてからのTomcat 7.0.30バージョンを設定しているすでにのTomcatが付属していますtcnative-1.dllし、他の文書、および

デフォルトでは、我々は唯一のTomcatの最新バージョンは、直接(試していない、または一時的にNIOを使用)を使用することができるダウンロードする必要があるので、Tomcatの4月モードで実行することです。


Tomcatの起動ログ情報では、一般的に現在の動作モード情報が含まれます。

おすすめ

転載: www.cnblogs.com/weiyiming007/p/12600027.html