Jetty安装学习并展示

Jetty 的基本架构

Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮你管理这些 Handler。

下图是 Jetty 的基本架构图,整个 Jetty 的核心组件由 Server 和 Connector 两个组件构成,整个 Server 组件是基于 Handler 容器工作的,它类似与 Tomcat 的 Container 容器,Jetty 与 Tomcat 的比较在后面详细介绍。Jetty 中另外一个比不可少的组件是 Connector,它负责接受客户端的连接请求,并将请求分配给一个处理队列去执行。

推荐阅读:

使用Jetty作为嵌入式服务器

Jetty 源码分析

图 1. Jetty 的基本架构

开始部署安装:

1 Jetty下载地址:


2 添加运行jetty账号
useradd -m jetty
usermod -a -G nagcmd jetty

3 解压缩(解压缩)
解压缩直接可以使用,不需要configre也不需要make了。
mv jetty-distribution-7.6.15.v20140411 /usr/local/jetty

查看README.txt
cat /usr/local/jetty/README.txt
可以看到一些RUNNING的方法:
......
RUNNING JETTY
=============
The run directory is either the top-level of a binary release
or jetty-distribution/target/assembly-prep directory when built from
source.
To run with the default options:
java -jar start.jar
To see the available options and the default arguments
provided by the start.ini file:
java -jar start.jar --help
To run with extra configuration file(s) appended, eg SSL
java -jar start.jar etc/jetty-ssl.xml
To run with properties
java -jar start.jar jetty.port=8081
To run with extra configuration file(s) prepended, eg logging & jmx
java -jar start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml
To run without the args from start.ini
java -jar start.jar --ini OPTIONS=Server,websocket etc/jetty.xml etc/jetty-deploy.xml etc/jetty-ssl.xml
to list the know OPTIONS:
java -jar start.jar --list-options
java -jar /usr/local/jetty_7.6.15_8100/start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml jetty.port=8100

我需要在启动3个jetty服务,一个服务对应一个web应用,所以直接copy3个解压缩包
cp -r jetty jetty_8100
cp -r jetty jetty_8200
cp -r jetty jetty_8300

4, 分别启动3个应用,带上jetty.port端口:
nohup java -jar /usr/local/jetty_7.6.15_8100/start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml jetty.port=8100 &
nohup java -jar /usr/local/jetty_7.6.15_8200/start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml jetty.port=8200 &
nohup java -jar /usr/local/jetty_7.6.15_8300/start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml jetty.port=8300 &

问题在于,用这种方法start,却没有相应的办法去stop;
比如java -jar /usr/local/jetty_7.6.15_8200/start.jar -DSTOP.PORT=8200 -DSTOP.KEY=magic --stop 的办法没有能够关闭掉jetty进程,只能手工kill ID,这种不是太保险。
改端口如下:
将<Set><Property default="8100"/></Set>中的8080改成8100

vim /usr/local/jetty_7.6.15_8100/etc/jetty.xml

<Callname="addConnector">

<Arg>

<Newclass="org.eclipse.jetty.server.nio.SelectChannelConnector">

<Setname="host"><Propertyname="jetty.host"/></Set>

<Setname="port"><Propertyname="jetty.port"default="8100"/></Set>

<Setname="maxIdleTime">300000</Set>

<Setname="Acceptors">2</Set>

<Setname="statsOn">false</Set>

<Setname="confidentialPort">8443</Set>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8ce8c1d214e0d88a32ec635f51819a9d.html