J2EE

當前位置 /首頁/IT認證/J2EE/列表

j2ee伺服器有哪些

眾所周知,J2EE應用伺服器百花齊放,種類眾多。那麼J2EE應用伺服器有哪些?又有哪些功能呢?一起來看看吧!

j2ee伺服器有哪些

  從功能實現上劃分:

有實現完整J2EE規範(full profile)的Weblogic, WebSphere, GlassFish

有實現web應用規範(web profile)的 TomEE, JBoss/WildFly

有基本的Servlet及Jsp規範的Web容器(Web Container) Tomcat, Jetty, Resin

回顧過去的2015年,各應用伺服器市場佔有率各有千秋。

  下圖為各個應用伺服器使用率餅圖

我們看到,在眾多J2EE應用伺服器中,Tomcat使用率達到58.66%,穩坐第一。

相較2014年,Tomcat使用率大幅增長,增長將近19%。

整體而言,Tomcat做為Servlet和Jsp規範的參考實現(Reference implementation , 簡稱RI),一般都會在第一時間實現規範的新特性並通過Oracle的CTS 測試認證。目前最新的Tomcat 9.0,雖還是alpha版,但已經實現了Servlet 4.0草案,感興趣的朋友,可以下載嚐鮮哦!

Tomcat是一個實現了JAVA EE標準的最小的WEB伺服器,是Apache 軟體基金會的Jakarta 專案中的一個核心專案,由Apache、Sun 和其他一些公司及個人共同開發而成。因為Tomcat 技術先進、效能穩定,而且開源免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。學習JavaWeb開發一般都使用Tomcat伺服器,該伺服器支援全部JSP以及Servlet規範,啟動介面如圖:

Tomcat 是一款非常優秀的 Java Web 伺服器,以致於很多開源 Java 應用伺服器(如 JOnAS) 直接整合它作為 servlet 容器。

  Tomcat的總體結構

Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context元件,之前用過Tomcat的童鞋是不是覺得這些元件的名稱有點似曾相識的趕腳,沒趕腳?!您再想想。好吧,不用你想了,我來告訴你吧。其實在Tomcat二進位制分發包解壓後,在conf目錄中有一個檔案,你開啟它瞄兩眼看看,是不是發現檔案中已經包含了上述的幾個名稱。

  Tomcat 叢集原始碼的類圖

從圖中我們可以看出 Tomcat 叢集包括以下幾個方面的內容:

Session: Session 分為 StandardSession 與ClusterSession 兩種,後者用於 Session 複製。

Session Manager: 有用於叢集 Session 管理的ClusterSession,也有用於對 Session 進行一般日常管理的,如 PersistentManager,BackupManager,SimpleTcpReplicationManager。

組通迅框架:SessionManager呼叫組通訊框架進行 Session 的傳輸,Tomcat採用的組通

訊框架是 tribe,目前 tribe 已被獨立為開放的. apache 工程。

Cluster: 方便叢集管理而派生出的邏輯概念,可將實際物理機劃分為一個 Cluster,也可 將一臺物理機上不同埠的例項劃分為一個 Cluster,它有一個簡單的實現類 SimpleTcpCluster。

  1.1 Session

伺服器叢集通常操縱兩種session:

1. Stickysessions: 儘量讓同一個客戶請求由同一臺伺服器來處理,這樣 sticky sessions 就是 存在於單機伺服器中接受客戶端請求的 session,它不需要進行 Session 複製,如果這個 單機失敗的話,使用者必須重新登入網站。

2. Replicatedsessions: 在一臺伺服器中的 session 狀態被複制到叢集的其他伺服器上,無論 何時,只要 session 改變了,session 資料都要重新全部或部分(依據複製策略)被複制 到其他伺服器上。

Tomcat 支援以下三種 session 永續性型別:

1. 記憶體複製:在 JVM 記憶體中複製 session狀態,使用 Tomcat自帶的 SimpleTcpCluster 和SimpleTcpClusterManager類。

2. 資料庫永續性:在這種型別中,session 狀態儲存在一個關係資料庫中,伺服器使用Manager類從資料庫中獲取 Session 資訊。

3. 基於檔案的永續性:這裡使用類Manager 把session 狀態儲存到一個檔案系統

  Session Manager

Tomcat 通過 ger 來管理 Session,Manager 介面總是和 Context Container 相關聯。它主要負責 session 的建立、更新和銷燬。該介面中一些重要的方法有:

使用者在 Servlet 中通過 ServletRequest 介面的 getSession 方法獲得 Session,而該介面的實現位於 est 類中的 doGetSession 方 法中,在該方法中通過 ger 來獲得 Session , doGetSession 方法的 部分程式碼如下:

組通訊框架--Tribe

組通訊框架 Tribe 在 Tomcat 中的位置可如下圖

如圖所示,Tribe 的核心主要是 Channel 類,由此看出,它採用 NIO 進行 Socket 通訊,運用

了組播,事件、心跳檢測等技術,下面我們來著重看看程式碼中 Tomcat 是如何與 Tribe 衍接首先在 SimpleTcpReplication 類中的實現 Manager 介面的 start 方法中:

  Cluster

Cluster 用於管理叢集中的 Session 複製,它有一個簡單的實現類 SimpleTcpCluster。

TAG標籤:J2EE 伺服器 #