j2ee服务器有哪些

时间:2020-11-10 19:19:50 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服务器有哪些

  我们看到,在众多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规范,启动界面如图:

j2ee服务器有哪些

 

  Tomcat 是一款非常优秀的 Java Web 服务器,以致于很多开源 Java 应用服务器(如 JOnAS) 直接集成它作为 servlet 容器。

  Tomcat的总体结构

j2ee服务器有哪些

  Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。

  Tomcat 集群源码的类图

j2ee服务器有哪些

  从图中我们可以看出 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 的建立、更新和销毁。该接口中一些重要的方法有:

j2ee服务器有哪些

  用户在 Servlet 中通过 javax.servlet.http.HttpServletRequest 接口的 getSession 方法获得 Session,而该接口的实现位于 org.apache.catalina.connector.Request 类中的 doGetSession 方 法中,在该方法中通过 org.apache.catalina.Manager 来获得 Session , doGetSession 方法的 部分代码如下:

j2ee服务器有哪些

  组通讯框架--Tribe

  组通讯框架 Tribe 在 Tomcat 中的位置可如下图

j2ee服务器有哪些

  如图所示,Tribe 的核心主要是 Channel 类,由此看出,它采用 NIO 进行 Socket 通讯,运用

  了组播,事件、心跳检测等技术,下面我们来着重看看代码中 Tomcat 是如何与 Tribe 衍接首先在 SimpleTcpReplication 类中的实现 Manager 接口的 start 方法中:

j2ee服务器有哪些

  Cluster

  Cluster 用于管理集群中的 Session 复制,它有一个简单的实现类 SimpleTcpCluster。

【j2ee服务器有哪些】相关文章:

1.j2ee应用服务器有哪些

2.j2ee规范有哪些

3.J2EE技术有哪些

4.Linux服务器安全技巧有哪些

5.J2EE应用服务器

6.J2EE分层服务器部署方法

7.j2ee应用服务器和web服务器解析

8.J2EE应用服务器集群