wiki:waue/2009/0811

Version 17 (modified by waue, 15 years ago) (diff)

--

jazz 提供資訊

  • hadoop的web server 是用jetty
$hadoop_home/webapps/task/ 50060
$hadoop_home/webapps/dfs/ 50070
$hadoop_home/webapps/datanode/ 50010
$hadoop_home/webapps/job/ 50030
$hadoop_home/webapps/task/ 50060
$hadoop_home/webapps/dfs/ 50070
  • 理論上 Jetty 會幫你把 JSP 檔案變成一個 java ,放在 WEB-INF 裡面 ,產生一個 hello_jsp.java

jetty 研究

  • a 100% Java HTTP Server and Servlet Container
    • Open Source

易用性

易用性是 Jetty 設計的基本原則,易用性主要體現在以下幾個方面:

  1. 通過 XML 或者 API 來對 Jetty 進行配置;
  2. 默認配置可以滿足大部分的需求;
  3. 將 Jetty 嵌入到應用程序當中只需要非常少的代碼;

可擴展性

在使用了 Ajax 的 Web 2.0 的應用程序中,每個連接需要保持更長的時間,這樣線程和內存的消耗量會急劇的增加。這就使得我們擔心整個程序會因為單個組件陷入瓶頸而影響整個程序的性能。但是有了 Jetty:

  1. 即使在有大量服務請求的情況下,系統的性能也能保持在一個可以接受的狀態。
  2. 利用 Continuation 機制來處理大量的用戶請求以及時間比較長的連接。

另外 Jetty 設計了非常良好的接口,因此在 Jetty 的某種實現無法滿足用戶的需要時,用戶可以非常方便地對 Jetty 的某些實現進行修改,使得 Jetty 適用於特殊的應用程序的需求。

易嵌入性

Jetty 設計之初就是作為一個優秀的組件來設計的,這也就意味著 Jetty 可以非常容易的嵌入到應用程序當中而不需要程序為了使用 Jetty 做修改。從某種程度上,你也可以把 Jetty 理解為一個嵌入式的Web服務器。

安裝jetty

  • debian安裝方法
  • 在ubuntu用apt-get 安裝得到 jetty 5.1.14版 (2007/8/9) 與 hadoop 0.18.3 的lib 內放的jar檔版本相同
    $ sudo apt-get install jetty jetty-extra
    
  • ubuntu 安裝後的目錄與debian有些不同
/usr/share/jetty/ jetty home
cgi-bin/ 0
ext/ 0
lib/ jar檔
webapps/root下有預設網站
/usr/share/doc/jetty/ 文件目錄
/var/log/jetty/ log
/usr/share/java/ jetty-5.0.0.jar 主程式
/etc/jetty/ 設定檔
/etc/default/ jetty 0
/etc/init.d/ jetty 驅動檔

啟動 jetty

  • 設定 jetty -> /etc/jetty/jetty.xml
            <Set name="Port"><SystemProperty name="jetty.port" default="8280"/></Set>
    
  • 啟動
    $sudo /etc/init.d/jetty start
    
  • 瀏覽 http://localhost:8280/
  • ps : 不知設定檔如何找出port :
    • 先用 ps aux | jetty 找出jetty的pid
    • 在用pid 來探索 netstat -anlp | grep $pid ,可查出port號如
      tcp6       0      0 :::8280                 :::*                    LISTEN      30597/java
      
    • 預設port在8280
  • ps2: jetty的預設網頁裡的tutorial 還不錯

開發jetty

http://sites.google.com/site/javacodelibrary/_/rsrc/1240252400400/java-net/jetty/Jetty_Eclipse.png