亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Jetty安裝學(xué)習(xí)并展示

系統(tǒng) 2026 0

Jetty 的基本架構(gòu)

Jetty 眼下的是一個比較被看好的 Servlet 引擎,它的架構(gòu)比較簡單,也是一個可擴(kuò)展性和很靈活的應(yīng)用server,它有一個基本數(shù)據(jù)模型,這個數(shù)據(jù)模型就是 Handler,全部能夠被擴(kuò)展的組件都能夠作為一個 Handler,加入到 Server 中,Jetty 就是幫你管理這些 Handler。

下圖是 Jetty 的基本架構(gòu)圖,整個 Jetty 的核心組件由 Server 和 Connector 兩個組件構(gòu)成,整個 Server 組件是基于 Handler 容器工作的,它相似與 Tomcat 的 Container 容器,Jetty 與 Tomcat 的比較在后面具體介紹。Jetty 中另外一個比不可少的組件是 Connector,它負(fù)責(zé)接受client的連接請求,并將請求分配給一個處理隊列去執(zhí)行。

圖 1. Jetty 的基本架構(gòu)
? Jetty安裝學(xué)習(xí)并展示

開始部署安裝:

1 Jetty下載地址:
http://wiki.eclipse.org/Jetty/Howto/Install_Jetty


2 加入執(zhí)行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服務(wù),一個服務(wù)相應(yīng)一個web應(yīng)用,所以直接copy3個解壓縮包
?cp -r jetty jetty_8100
?cp -r jetty jetty_8200
?cp -r jetty jetty_8300
?
4,? 分別啟動3個應(yīng)用,帶上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,卻沒有相應(yīng)的辦法去stop;
?比方j(luò)ava -jar /usr/local/jetty_7.6.15_8200/start.jar -DSTOP.PORT=8200 -DSTOP.KEY=magic --stop 的辦法沒有能夠關(guān)閉掉jetty進(jìn)程,僅僅能手工kill ID,這樣的不是太保險。
?改端口例如以下:
將<Set name="port"><Property name="jetty.port" default="8100"/></Set>中的8080改成8100

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

    <Call name="addConnector">

      <Arg>

          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">

            <Set name="host"><Property name="jetty.host" /></Set>

            <Set name="port"><Property name="jetty.port" default="8100"/></Set>

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

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

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

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

            <Set name="lowResourcesConnections">20000</Set>

            <Set name="lowResourcesMaxIdleTime">5000</Set>

          </New>

      </Arg>

    </Call>


    

?

?5,進(jìn)入/bin/文件夾,發(fā)現(xiàn)有jetty.sh腳本能夠啟動
啟動start :
/usr/local/jetty_7.6.15_8100/bin/jetty.sh start
停止stop :
/usr/local/jetty_7.6.15_8100/bin/jetty.sh stop

      [root@localhost etc]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh stop

Stopping Jetty: OK

[root@localhost etc]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh start

Starting Jetty: 2014-05-13 15:53:05.744:INFO::Redirecting stderr/stdout to /usr/local/jetty_7.6.15_8100/logs/2014_05_13.stderrout.log

OK 2014年 05月 13日 星期二 15:53:09 CST

[root@localhost etc]# 




    


有報錯例如以下:
Starting Jetty: Already Running!!

改端口例如以下:
將<Set name="port"><Property name="jetty.port" default="8100"/></Set>中的8080改成8100

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

    <Call name="addConnector">

      <Arg>

          <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">

            <Set name="host"><Property name="jetty.host" /></Set>

            <Set name="port"><Property name="jetty.port" default="8200"/></Set>

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

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

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

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

            <Set name="lowResourcesConnections">20000</Set>

            <Set name="lowResourcesMaxIdleTime">5000</Set>

          </New>

      </Arg>

    </Call>


    

依次改成8100,8200,8300再列出停止啟動命令例如以下:
/usr/local/jetty_7.6.15_8100/bin/jetty.sh stop
/usr/local/jetty_7.6.15_8200/bin/jetty.sh stop
/usr/local/jetty_7.6.15_8300/bin/jetty.sh stop

/usr/local/jetty_7.6.15_8300/bin/jetty.sh start
/usr/local/jetty_7.6.15_8200/bin/jetty.sh start
/usr/local/jetty_7.6.15_8100/bin/jetty.sh start

啟動了8100,再起8200還是報一樣的錯誤

Starting Jetty: Already Running!!

java -jar /usr/local/jetty_7.6.15_8300/start.jar --pre=etc/jetty-logging.xml --pre=etc/jetty-jmx.xml? --stop STOP.PORT=8300 STOP.KEY=1

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 &

?

6,再換java -jar方式啟動試試
nohup java -jar /usr/local/jetty_7.6.15_8200/start.jar? jetty.port=8200 &
java -jar /usr/local/jetty_7.6.15_8200/start.jar --STOP.PORT=8200 --STOP.KEY=magic --stop?
java -jar /usr/local/jetty_7.6.15_8200/start.jar -DSTOP.PORT=8200 -DSTOP.KEY=magic --stop

下述方法能啟動3個jetty,可是無法正常stop,--stop參數(shù)沒有成功,jetty進(jìn)程仍然在后臺執(zhí)行,僅僅能kill強行停止進(jìn)程:

      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 &


    


7,去看看?jetty.sh腳本,check下
[root@localhost bin]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh check
Checking arguments to Jetty:
JETTY_HOME???? =? /usr/local/jetty_7.6.15_8100
JETTY_CONF???? =? /usr/local/jetty_7.6.15_8100/etc/jetty.conf
JETTY_RUN????? =? /var/run
JETTY_PID????? =? /var/run/jetty.pid
JETTY_PORT???? =?
JETTY_LOGS???? =?
START_INI????? =? /usr/local/jetty_7.6.15_8100/start.ini
CONFIGS??????? =? etc/jetty-logging.xml etc/jetty-started.xml
JAVA_OPTIONS?? =? -Djetty.state=/usr/local/jetty_7.6.15_8100/jetty.state -Djetty.home=/usr/local/jetty_7.6.15_8100 -Djava.io.tmpdir=/tmp
JAVA?????????? =? /usr/java/jdk1.6.0_45/bin/java
CLASSPATH????? =? .:/usr/java/jdk1.6.0_45/lib/tools.jar:/usr/java/jdk1.6.0_45/lib/dt.jar
RUN_CMD??????? =? /usr/java/jdk1.6.0_45/bin/java -Djetty.state=/usr/local/jetty_7.6.15_8100/jetty.state -Djetty.home=/usr/local/jetty_7.6.15_8100 -Djava.io.tmpdir=/tmp -jar /usr/local/jetty_7.6.15_8100/start.jar etc/jetty-logging.xml etc/jetty-started.xml

看到JETTY_PID????? =? /var/run/jetty.pid,突然意識到,啟動8200假設(shè)也是這樣JETTY_PID????? =? /var/run/jetty.pid一個pid的話,那肯定跟8100是沖突的,難怪每次僅僅能啟動一個jetty.sh,須要去看下jetty.sh的腳本里面是在哪里設(shè)置/var/run/jetty.pid的,找到了改動下帶上后綴數(shù)字。

vim jetty.sh
在第343行 將 jetty.pid 改成 jetty_8200.pid
改成

      if [ -z "$JETTY_PID" ]

then

  JETTY_PID="$JETTY_RUN/jetty_8200.pid"

fi



if [ -z "$JETTY_STATE" ]

then

  JETTY_STATE=$JETTY_HOME/jetty.state




    


??
8,最后正常關(guān)閉啟動例如以下:

      [root@localhost bin]# pwd

/usr/local/jetty_7.6.15_8200/bin

[root@localhost bin]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh stop

Stopping Jetty: OK

[root@localhost bin]# /usr/local/jetty_7.6.15_8200/bin/jetty.sh stop

Stopping Jetty: OK

[root@localhost bin]# /usr/local/jetty_7.6.15_8300/bin/jetty.sh stop

Stopping Jetty: OK

[root@localhost bin]# ps -eaf|grep jetty

root     20205 11980  0 20:28 pts/2    00:00:00 grep jetty

[root@localhost bin]# /usr/local/jetty_7.6.15_8300/bin/jetty.sh start

Starting Jetty: 2014-05-13 20:28:32.146:INFO::Redirecting stderr/stdout to /usr/local/jetty_7.6.15_8300/logs/2014_05_13.stderrout.log

OK 2014年 05月 13日 星期二 20:28:33 CST

[root@localhost bin]# /usr/local/jetty_7.6.15_8200/bin/jetty.sh start

Starting Jetty: 2014-05-13 20:28:34.416:INFO::Redirecting stderr/stdout to /usr/local/jetty_7.6.15_8200/logs/2014_05_13.stderrout.log

OK 2014年 05月 13日 星期二 20:28:37 CST

[root@localhost bin]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh start

Starting Jetty: 2014-05-13 20:28:38.527:INFO::Redirecting stderr/stdout to /usr/local/jetty_7.6.15_8100/logs/2014_05_13.stderrout.log

OK 2014年 05月 13日 星期二 20:28:41 CST

[root@localhost bin]# 


    


9,打開 http://192.xxx.xxx.xx:8100/cargo-jetty-deployer/ 報錯例如以下

HTTP ERROR 400

Problem accessing /cargo-jetty-deployer/. Reason:

??? Command / is unknown
Powered by Jetty://

?

10,部署一個簡單的jetty應(yīng)用:
[root@localhost webapps]# mkdir test1
[root@localhost webapps]# ll
總計 27100
-rw-r--r-- 1 root root??? 10220 05-13 20:44 cargo-jetty-7-and-onwards-deployer-1.4.8.war
-rw-r--r-- 1 root root 26839664 05-14 15:22 imClient.war
drwxr-xr-x 3 root root???? 4096 03-31 22:05 META-INF
-rw-r--r-- 1 root root??? 14578 05-13 15:20 spdy.war
drwxr-xr-x 2 root root???? 4096 05-14 16:05 test1
-rw-r--r-- 1 root root?? 763052 05-13 15:20 test.war
-rw-r--r-- 1 root root??? 60014 05-14 13:31 webim_server.jar
drwxr-xr-x 3 root root???? 4096 03-31 22:05 WEB-INF
[root@localhost webapps]#

[root@localhost test1]# cd test1
[root@localhost test1]# vim hello.jsp
<html>
<body>
<h4>simple demo test</h4>
<%--echo hello world--%>
< %@page language="java"%>
<%="Hello World,The first jetty demo page of timman in pl"%>
</body>
</html>

又一次啟動jetty
[root@localhost test1]# /usr/local/jetty_7.6.15_8100/bin/jetty.sh restart
Stopping Jetty: OK
Starting Jetty: 2014-05-14 16:08:25.445:INFO::Redirecting stderr/stdout to /usr/local/jetty_7.6.15_8100/logs/2014_05_14.stderrout.log
. . . OK 2014年 05月 14日 星期三 16:08:38 CST
[root@localhost test1]#


11,查看效果顯示:在瀏覽器里面輸入網(wǎng)址: http://192.xxx.xxx.xx:8100/test1/hello.jsp
會在頁面顯演示樣例如以下:
simple demo test

Hello World,The first jetty demo page of timman in pl,例如以下圖:

Jetty安裝學(xué)習(xí)并展示

?

附加總結(jié):

(1):單純比較 Tomcat 與 Jetty 的性能意義不是很大,僅僅能說在某種使用場景下,它表現(xiàn)的各有差異。由于它們面向的使用場景不盡同樣。

從架構(gòu)上來看 Tomcat 在處理少數(shù)很繁忙的連接上更有優(yōu)勢,也就是說連接的生命周期假設(shè)短的話,Tomcat 的整體性能更高。
而 Jetty 剛好相反,Jetty 能夠同一時候處理大量連接并且能夠長時間保持這些連接。比如像一些 web 聊天應(yīng)用很適合用 Jetty 做server,像淘寶的 web 旺旺就是用 Jetty 作為 Servlet 引擎。

(2)另外由于 Jetty 的架構(gòu)很easy,作為server它能夠按需載入組件,這樣不須要的組件能夠去掉,這樣無形能夠降低server本身的內(nèi)存開銷,處理一次請求也是能夠降低產(chǎn)生的暫時對象,這樣性能也會提高。另外 Jetty 默認(rèn)使用的是 NIO 技術(shù)在處理 I/O 請求上更占優(yōu)勢,Tomcat 默認(rèn)使用的是 BIO,在處理靜態(tài)資源時,Tomcat 的性能不如 Jetty。

?

參考網(wǎng)址: http://www.ibm.com/developerworks/cn/java/j-lo-jetty/

Jetty安裝學(xué)習(xí)并展示


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色在线网站 | 一级片看看| 狠狠色官网在线 | 国产日产精品久久久久快鸭 | 日本不卡高清免费 | 欧美激情视频二区 | 九热爱视频精品视频 | 久久精品综合视频 | 国产欧美亚洲精品综合在线 | 国产一二三区在线观看 | 亚洲国产一区在线二区三区 | 日韩不卡高清视频 | 一级日本高清视频免费观看 | 久久国产欧美另类久久久 | 日韩精品一区二区三区四区 | 亚洲尹人 | 热九九精品| 在线色网站 | 高清欧美一区二区三区 | 国产精品k| 欧美成人aⅴ | 国内自拍一二三四2021 | 久久国产一区二区三区 | 奇米77777| 一级毛片日韩a欧美视频 | 亚洲成人免费在线视频 | 狠狠色成人综合网图片区 | 国产 欧美 日产久久 | 中文字幕久久久久久精 | 久久精品国产99久久无毒不卡 | 伊人精品视频一区二区三区 | 亚洲图片另类 | 国产精品视频公开费视频 | 久久精品这里只有精品 | 久久精品国产免费看久久精品 | 欧美激情在线观看一区二区三区 | 国产成人一区二区在线不卡 | 台湾一级毛片免费播放 | 成人影院在线免费观看 | 欧美成人性做爰 | 成人国产第一区在线观看 |