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月
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の起動ログ情報では、一般的に現在の動作モード情報が含まれます。