Jetty情報
Jettyとは
Jetty (ジェティ)とは、100%Javaで開発されたHTTP(Web)サーバ兼Java Servletコンテナです。
一般的なHTTP(Web)サーバが、主にブラウザ等を介して利用者にHTMLなどを提供するのに対し、JettyはEclipseやApache Solrなどのソフトウェアの一部に組み込まれているほか、さまざまなデバイスにも組み込まれてマシン間通信機能を提供するためにも利用されています。
Jettyは完全非同期型WEBサーバ(クライアントからのリクエストに対して、待機が非同期で行われる)で、HTTP/2、WebSocket、OSGi、JMX、JNDI、JAASなど、その他多くの統合機能をサポートしています。
同様のJava ServletコンテナであるTomcatと比べると、起動が速い(メモリのフットプリントが小さい)、Jetty単独で静的コンテンツとサーブレットが提供できる、非同期HTTPサーバの特徴を活かして、短時間に大量のクライアントからの要求に応えることができるなどの利点があります。
主な機能
主な機能は以下のとおりです。
Webサーバ機能 |
Apache HTTP Serverのように静的コンテンツを送信します。 |
---|---|
Java Serveletコンテナ |
標準Javaサーブレットによる動的コンテンツの生成を行います。 |
JNDI対応 |
JNDI APIに対応しており、データソースやディレクトリサービスなどにJetty上で名前を設定しておき、プログラム上では設定した名前でオブジェクトを利用 することができます。 |
JMX対応 |
JMX APIに対応しており、JConsoleなどを利用してリモートからJettyの状態監視やJetty上で稼動しているアプリケーションの状態監視を行う ことが可能です。 |
OSGi対応 |
Apache FelixなどのOSGiコンテナにモジュールとしてバンドルさせて動作させることが可能です。 |
非同期HTTPサーバ |
クライアントからのリクエストに対し、サーブレットの処理完了を待たずにレスポンスを返すことができます。 |
非同期HTTPクライアント |
Jetty自身から外部のサーバに向けて、HTTPリクエストを非同期に送受信することができます。 |
HTTP/2対応 |
RFC7540で定義されているHTTP/2プロトコルのクライアントとサーバの両方をサポートしています。 |
WebSocketサーバ |
ブラウザとの双方向通信を実現するWebSocket規格のサーバとして動作します。 |
主な特徴
主な特徴は以下のとおりです。
100%Java |
100%Javaで実装されたHTTPサーバ兼Java Servletコンテナです。 |
---|---|
軽量 |
ファイルサイズが約14MBの単一のJarファイルとして動作させるこ とが可能です。 |
高いスループット |
非同期HTTPサーバや、HTTP/2の技術によって、大量のクライアント からの応答に耐え、高いスループットを実現することができます。 |
スケーラビリティ |
非同期HTTPクライアントとしての機能も提供しており、非同期 HTTPサーバとして受信したリクエストを非同期HTTPクライアントとして再利用することで、スケーラブルにリクエストやレスポンスを処理することができます。 |
柔軟な拡張機構 |
プラガブル(各機能を必要に応じてOn/Offすることができる)な機 構を持っており、各機能を独自のプラグインとして拡張することができます。 |
類似プロダクト
OSS製品ではApache Tomcatが同様の機能を提供しています。
ユースケース
Jettyを利用している代表的なWebサービスやソフトェアには、次のようなものがあります。
Active MQ、Alfresco、Apache Solr、Eclipse、Equinox、Apache felix、Apache Geronimo、Google AppEngine、Apache Hadoop、MongoDB Management Service
動作環境
前提となる動作環境は、以下のとおりです。
OS
- Javaが動作するすべてのOS
Java
- Java Runtime Environment(JRE)1.8以降
Version |
Protocols |
Servlet |
Java |
---|---|---|---|
9.4.x |
HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI |
3.1 |
8 |
10.0.x |
HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI |
4.0.1 |
11 |
11.0.x |
HTTP/1.1 (RFC 7230), HTTP/2 (RFC 7540), WebSocket (RFC 6455, JSR 356), FastCGI, JakartaEE |
5.0.0 |
11 |
※Jetty 9.3 以前のバージョンはサポート終了または非推奨となっております。
Jettyのライセンス
Jettyのライセンスは、Apacheソフトウェア財団 (ASF) によって規定されたApache License Version 2.0およびEclipse Foundationによって規定されたEclipse Public License1.0のデュアルライセンスを採用しています。
Apache License Version 2.0のライセンスに従い、著作権の表示などの条件に従うことで、商用利用、修正、再頒布などが自由に行えます。
Eclipse Public License1.0 のライセンスに従い、商用利用、再配布が自由に行えます。修正した場合に限り、ソースコードの入手方法を示す義務が生じます。
参考情報
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Nginx
エンジンエックス。Apache HTTP Serverに次ぐ利用率で人気急上昇中の高速・高性能Webサーバです。
-
サポート対象
Apache HTTP Server
アパッチエイチティーティーサーバ。世界中で最も人気の高いwebサーバソフトウェアの一つです。
-
サポート対象
Apache Tomcat
アパッチトムキャット。JavaサーブレットやJSPを実行するためのソフトウェア