當前位置:編程學習大全網 - 源碼下載 - 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目錄中有壹個server.xml文件,妳打開它瞄兩眼看看,是不是發現server.xml文件中已經包含了上述的幾個名稱。

 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 狀態保存在壹個關系數據庫中,服務器使用org.apache.catalina.session.JDBCManager類從數據庫中獲取 Session 信息。

 3. 基於文件的持久性:這裏使用類org.apache.catalina.session.FileManager 把session 狀態保存到壹個文件系統。

 Session Manager

 Tomcat 通過 org.apache.catalina.Manager 來管理 Session,Manager 接口總是和 Context Container 相關聯。它主要負責 session 的建立、更新和銷毀。該接口中壹些重要的方法有:

 用戶在 Servlet 中通過 javax.servlet.http.HttpServletRequest 接口的 getSession 方法獲得 Session,而該接口的實現位於 org.apache.catalina.connector.Request 類中的 doGetSession 方 法中,在該方法中通過 org.apache.catalina.Manager 來獲得 Session , doGetSession 方法的 部分代碼如下:

 組通訊框架--Tribe

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

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

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

 Cluster

 Cluster 用於管理集群中的 Session 復制,它有壹個簡單的實現類 SimpleTcpCluster。

  • 上一篇:請問BT下載具體是怎麽壹回事?詳細步驟怎麽樣?
  • 下一篇:飛艇程序軟件源代碼
  • copyright 2024編程學習大全網