我们公司的项目使用的服务器主要分为web服务器(存放静态页面)、应用服务器(运行后台)、负载均衡服务器(控制分发)这三类服务器,其中应用服务器用到的是JBoss,由于学生阶段没使用过JBoss,因此,查阅了相关资料,对JBoss有了初步的了解,在这里做个笔记,也分享给大家。下面是本次笔记的主要要点:
1.JBoss是什么
2.与其它服务器(tomcat,apache)比较
3.快速搭建
4.目录及配置文件解析
5.应用部署
6.搭建服务器集群
一、JBoss是什么?
JBoss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
JBoss4:
包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持。
JBoss5:
架构:核心的JBoss Microcontainer可以在多种编程和组件模型上提供改进后的级别加载、性能、生命周期管理和灵活性,其中包括Java EE、多种POJO、OSGi、Spring Framework和传统的现场和云操作环境。这种Microcontainer还提供将企业服务从核心运行时间引擎中分离出来的能力,使其更便于配置。
主要组件更新:更新的内容包括企业版的JBoss Application Server、Hibernate、Seam、JBoss Cache和JBoss Web Services,可为各类部署环境中的扩展性、高可用性和智能负载均衡提供性能增强特性。这一新版本还可支持分布式事务和全面的Web服务栈支持。
JBoss6:
JBOSS AS6 最大亮点是对Java EE 6 Web Profile规范的支持。还提供了可选的经过认证的组件:RESTEasy 2.1.0——JAX-RS1.1规范的实现;HornetQ2.1.2——JMS 1.1规范的实现以及JBoss Web Services CXF栈——JAX-WS 2.2规范的实现。
主要特性:对JBoss Injection框架的完整实现。这对于满足Java EE 6平台规范所要求的Resources、Naming以及Injection是至关重要的。
对于性能来说,JBoss AS 5与6之间有明显的变化。JBoss AS 6对启动性能的提升很明显,现在的平均启动时间是15秒。用户能够感觉到这种改进,一定程度上是因为延迟了随AS一同发布的管理控制台应用的部署,转而以“按需”方式提供,同时还实现了Timer Service的延迟部署。Microcontainer(v2.2)的增强(包括新的注解扫描库的实现)极大降低了应用部署的时间。
JBoss7:
主要特性:1.极快(小于3秒的启动时间)2.轻量级 3.模块化的核心 4.热部署、增量部署 5.优雅的管理 6. 集群域的管理 7. First Class components
WildFly:
JBoss AS目前作为Redhat公司的商业产品JBoss Enterprise Application Platform的上游基础,为了使这两个产品有差异化,避免用户混淆,因此该公司在去年10月份就寻求为JBoss AS找一个新名字。
主要 改进:1.启动超快 2.模块化设计 3.非常轻量,内存占用非常少 4.更优雅的配置、管理方式 5.严格遵守Java EE7和OSGi规范
自从JBOSS EAP v6.0版本以后不再有lib的概念,JBoss EAP 开始采用模块化结构,服务仅在需要时才会启用,从而提高了启动速度。一切都是module。在v6.0前启动脚本是bin/run.sh,在v6.0以后是以bin/standalone.sh(独占)或bin/domain.sh(集群)的方式启动。关于Jboss的模块化推荐大家去看这篇文章https://blog.youkuaiyun.com/zmh458/article/details/79447526
二、与其它服务器(tomcat,apache)比较
服务器名 | 服务器类型 | 支持 | 特征 | 使用场景 |
---|---|---|---|---|
Apache | http | 静态文本 | 最广泛的http服务器,简单、速度快、性能稳定、可配置(代理),并发性能高 | 只需处理静态资源 |
Tomcat | web | 静态文本+jsp页面+servlet容器 | 非常广泛、小型、轻量级,部分是apache的拓展。基于java,具有跨平台性 | 只需要servlet容器,适用于中小型项目 |
JBoss | 应用 | j2ee规范+ejb容器+内嵌tomcat | 核心服务满足j2ee规范,提供ejb容器,但不包括web容器,因此通常与tomcat | 需要ejb容器,适用于中大型项目,有分布式需求 |
三、快速搭建
1.本例采用jboss-eap-6.4版本进行搭建。下载地址http://jbossas.jboss.org/downloads/
注 : j b o s s − a s − 7.1.1. F i n a l 与 j d k 1.8 不 兼 容 , 未 找 到 解 决 办 法 , 因 此 选 择 j b o s s − e a p − 6.4 版 本 \color{red}{注:jboss-as-7.1.1.Final与jdk1.8不兼容,未找到解决办法,因此选择jboss-eap-6.4版本} 注:jboss−as−7.1.1.Final与jdk1.8不兼容,未找到解决办法,因此选择jboss−eap−6.4版本
2.启动JBoss
启动脚本文件:bin/standalone.sh
- 直接启动
sh ./standalone.sh
- 后台启动(三种方式,具体区别请看博客https://www.cnblogs.com/andylhc/p/9721705.html)
- ./standalone.sh &(免疫SIGINT信号)
- nohup ./standalone.sh > run.log 2>&1(免疫SIGHUP信号)
- nohup ./standalone.sh > run.log 2>&1 &(免疫SIGINT和SIGHUP信号)
脚本执行完成并在浏览器中输入http://localhost:8080/
有此页面则JBoss服务器启动成功
3.关闭JBoss
JBoss6.0以上没有直接提供关闭的脚本,经查阅,有三种简单的方式可以关闭JBoss。
- 通过发送SIGINT和SIGHUP信号来关闭
说通俗点,发送SIGINT就是在命令行按下CTRL+C,可以关掉通过直接启动方式或第二种后台启动方式启动的JBoss;
而发送SIGHUP信号则是关闭shell窗口,可以关掉通过直接启动方式或第一种后台启动方式启动的JBoss;
但第三种后台启动方式只能通过下面的方式来关闭。 - 通过杀掉进程来关闭JBoss
先查询到jboss进程的pid
ps -aux |grep jboss
查询到pid后,可以通过强制杀死进程来关闭JBoss。
kill -9 24887
- 通过jboss-cli.sh指令来关闭JBoss
JBoss本身其实也提供了关闭服务器的方法,在bin目录下直接执行下面的指令,则可以直接关闭掉。
./jboss-cli.sh --connect command=:shutdown
由于篇幅问题,所以准备将后面的几部分内容放到下一篇博客中,到时候我会把链接发出来的。
https://blog.youkuaiyun.com/qq_37955930/article/details/103324849
作为一个萌新,非常希望大家给我一点建议或指出我的不足,我一定虚心接受,若能让其它小伙伴得到一点点帮助或启发,我会感到非常开心的(●’◡’●),我的qq1252615137,欢迎小伙伴加我交流,我们共同进步~