JBoss的AS版本 Wildfly 介绍和使用
WildFly简介:
wildFly是一款服务器,和tomcat一样,不过事jboss服务器的as版本罢了,相比于Jboss的EPA版本就比较繁重,所以有了这个Jboss服务器的轻便版本。至于什么时候独立出来的版本,之类的我就不给你扯淡了。
WildFly目录介绍:
- appclient 里面是一些默认的配置 服务器日志的配置等
- bin常规bin目录里面就是可以执行的脚本文件 比如./standalone.sh 就可以启动服务器了
- docs就是服务器的基础文件
- domain 服务器启动的方式有两种一种是standalone 另外一种就是这个domain这个是分布式的启动
- modules这里面配置了wildfly启动时要加载的module 后面详细介绍一下
- standalone wildfly启动的另外一种方式,里面放置了相关的配置
- welcome-content 这里面是wildfly启动之后一些默认的显示页面的文件
- jboss-modules.jar这个jar主要在wildfly启动的时候加载相关的jar文件 后面做详解
bin目录下有很多脚本文件,想启动wildfly直接执行./standalone.sh(linux环境下) 或者./standalone.bat(windows环境下)
对应的会加载standalone文件夹下面的配置文件,默认加载standalone.xml(可以修改启动脚本,修改默认配置文件为别的)
当然也可以在执行启动脚本的时候指定配置文件,同时也可以指定环境变量配置和系统属性配置格式如下
./standalone.sh --server-config=standalone-full.xml -Dorg.kie.server.id=first-kie-server
上面有不同的standalone配置文件,从文件命名基本就可以知道配置文件支持什么样的特性了。如果看不出来,那你可得学聪明点,至于详细的内容配置看下面:
Wildfly 配置文件详解:
<server xmlns="urn:jboss:domain:8.0"><extensions><extension module="org.jboss.as.clustering.infinispan"/></extensions><system-properties><property name="org.kie.server.id" value="sample-server"/></system-properties><management><security-realms><security-realm name="ManagementRealm"></security-realms><audit-log></audit-log><management-interfaces></management-interfaces><access-control provider="simple"></access-control></management><profile><subsystem xmlns="urn:jboss:domain:datasources:5.0"></subsystem></profile><interfaces><interface name="management"><any-address/></interface></interfaces><socket-binding-group name="standard-sockets" ><socket-binding name="management-http"/></socket-binding-group>
</server>
配置文件的结构大致如上面所示:
excetion是拓展模块:配置的module就是前面说的modules文件夹下面配置的module
System-property配置的是系统变量
Management就是管理模块
<security-realm name="ManagementRealm"> 配置的是wildfly的管理模块,可以指定存储着用户信息的文件的路径地址
<security-realm name="ApplicationRealm"> 配置的是应用的管理模块,可以指定存储着用户信息的文件路径地址
profile配置一些子系统信息,包括数据源 热部署所需要的scanner等,配置了scanner就会自动扫描对应监控的文件的配置,从而不用重启wildfly就会自动加载新配置:
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>
</subsystem>
interfaces 配置的是可以访问该服务器ip
socket-binding-group配置的是对应模块监听的端口,
Wildfly的modules介绍:
我们都知道,java一直以来加载class文件和各种jar的资源都是通过classpath,这样会造成很多问题,比如下面的问题
- 一个大的项目中,有的classpath当中的资源被加载后根本不会被用到,就会造成系统的资源浪费
- 同一个classpath当中的资源,可能包含多个不同版本的同一个资源,这就造成了版本冲突,可能会导致整个项目无法运行并且很难进行排错,因为我们的项目可能很大,在成百上千个jar中找到冲突,比火箭队夺冠都难
针对这些问题,Jboss 都从设计上面给出了解决方案:
- 通过使用Module.xml描述定义模块,在这个描述文件中要包含模块的名字,包括哪些资源等,一般一个模块对应一个jar文件,也可以包含多个jar或其他资源,这些资源的版本号,以及模块之间的依赖关系
- 每一个模块都可以实时地加载和卸载,这样做的好处,首先是资源方面的节省,只有需要的模块才会被加载(这一点是通过在配置文件module.xml中定义的模块之间的依赖关系来实现的),这一方式同时还带来的好处:能提升整个系统的加载速度
WildFly Modules定义:
wildFly Modules是一个适用于java模块化类加载以及执行环境的实现,传统的java加载类 是通过类加载器一个个加载类,现在讲一个jar文件定义成一个module,该module仅链接依赖的其他module,而不再以来其他任何资源。Jboss module 实现了一个线程安全的,快速的高并发的类加载器委派模型,再加上一个可拓展的模块解析引擎,形成一个独特的,简单的,强大的应用程序执行和分布系统。
WildFly Modules被设计为能够和现有的library或者application一起工作而不需要任何的修改,因为它简单的命名策略和解析策略不想OSGi,WildFly Modules 并没有实现一个容器,而是一个瘦的启动包装器,在一个模块化环境执行一个应用。这时你的应用接管控制权,模块化则准备好在需要时装载和链接模块,此外,只有当一个模块被依赖的时候,他才会被装载,并不会为了解析而装载,也就是说,模块化应用程序的性能仅依赖于实际就是用的模块数(并在模块被使用的时候),而不是系统中的模块总数目,模块可以被用户随时装载。
WildFly Moduls的使用:
一个模块化程序使用以下命令启动:
java -jar jboss-modules.jar -mp path/to/modules my.main.module.name
在模块路径(-mp)中需要指定默认模块加载器需要搜素加载模块的根目录。my.main.module.name 指定要运行的模块名称。
下面看下module.xml的内容
<?xml version="1.0" encoding="UTF-8"?>
<module name="com.google.guava" xmlns="urn:jboss:module:1.5"><properties><property name="jboss.api" value="private"/></properties><resources><resource-root path="guava-25.0-jre.jar"/></resources><dependencies></dependencies>
</module>
在jboss-moduels.jar里有一个schema文件来定义模块描述符的格式,因此集成到你喜欢的IDE中会很容易。JBoss Moduels提供了很多扩展的功能去严格控制什么java包是“exported"或者“imported',所以你可以从你的 Jar文件里选择性的不包含一些资源(这样使用预打包的jar文件时将变得更为简单)。
wildfly的4种部署方式:
- 管理頁面部署
管理页面控制台添加,和tomcat 的控制台添加类似,此处省略
- 命令行部署
进入主目录里面的/bin目录下,有个jboss-cli.sh 执行这个脚本,然后deploy你要部署的文件
jboss-cli.sh
deploy /xxxx/xxxx/xxx.jar 部署
undeploy /xxxx/xxxx/xxx.jar 卸载
- Maven Plugin(jboss-as-maven-plugin)
在你的项目的pom.xml文件里添加下面的依赖:
<plugin><groupId>org.jboss.as.plugins</groupId><artifactId>jboss-as-maven-plugin</artifactId><version>7.3.Final</version>
</plugin
使用 mvn jboss-as:deploy 进行部署
使用mvn jboss-as:undeploy 进行卸载
- 复制
就是将你的jar或者war文件复制到standalone/deployments/目录下
执行wildfly主目录中bin目录下启动脚本standalone.sh(bat)
wildfly服务器启动,如果启动了访问不了 启动的时候,就在standalone.sh 后面添加 -b 0.0.0.0
变成下面的 ./standalone.sh -b 0.0.0.0
参考链接如下:
https://blog.csdn.net/kylinsoong/article/details/17302241
JBoss的AS版本 Wildfly 介绍和使用相关推荐
- vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍
vSAN 6.7培训_第1章-Virtual SAN各版本功能介绍 2019年10月8日 by 何 坤源 http://www.bdnetlab.com/?p=996 1,865 Views Virt ...
- ATTCK v10版本战术介绍执行(下篇)
一.引言 在上期文章中我们介绍了ATT&CK执行战术前6项技术内容,本期我们为大家介绍执行战术后7项技术内容,后续会陆续介绍ATT&CK其他战术内容,敬请关注. 二.ATT&C ...
- oracle 10g express linux,使用Oracle10g express 版本方案介绍
本文主要介绍的是如何使用Oracle10g express 版本.还要介绍在使用Oracle10g express 版本运行中对参数的调整从而减少对系统资源的使用.以下的相关内容就是对其相关操作方案的 ...
- ATTCK v10版本战术介绍—资源开发
一.引言 在前两期文章中我们介绍了ATT&CK中侦察战术理论知识及实战研究,通过实战场景验证行之有效的检测规则.防御措施,本期我们为大家介绍ATT&CK 14项战术中资源开发战术,后续 ...
- 红旗 linux 在哪儿 看 版本,简介红旗Linux不同版本的介绍
Linux经过长时间的发展,很多用户都很了红旗Linux了,这里我发表一下个人理解, 声卡驱动问题比较多,可能很多情况下没有声音 Intel集成显卡在通过图形方式设置分辨率时,有出现崩溃的可能 集成的 ...
- android qq版本6.6.1,手机QQ6.6.1有哪些更新内容 手机QQ最新版本详细介绍
手机QQ安卓版最新6.6.1已经出来了.有很多的小伙伴们发现,这版的QQ就是为了情侣打造的,当然只是开玩笑罢了.更新了一些新的东西给小伙伴们,文中为大家带来的就是手机QQ最新版本详细介绍. 目前,iO ...
- 软件发布版本区别介绍
Alpha: Alpha 是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是 ...
- KTDictSeg 1.4 版本功能介绍 - 多元分词
KTDictSeg 1.4 版本功能介绍 - 多元分词 作者:肖波 KTDictSeg 1.4 开发了多元分词算法,其与lucene.net 配合构建全文搜索,经测试准确度接近google和baidu ...
- ATTCK v10版本战术介绍-初始访问
一.引言 在前几期文章中我们介绍了ATT&CK中侦察及资源开发战术理论知识及实战研究,通过实战场景验证行之有效的检测规则.防御措施,本期我们为大家介绍ATT&CK 14项战术中初始访问 ...
最新文章
- MySQL面试题 | 附答案解析(十六)
- 巧用宏定义进行调试 (转)
- 奇异值分解(SVD) --- 几何意义2
- 年终复盘刚需!Python数据可视化技巧来了
- Parcel是个好玩意儿
- Linux负载均衡软件LVS之一(概念篇)
- springboot项目中jdk版本的问题
- python打开摄像头cmd_Python调用shell cmd方法代码示例解析
- PHP Yii2 composer环境安装
- c语言静态数组是什么意思,C语言静态数组实现栈操作
- 爬虫实战 -- QQ音乐爬取全部歌曲
- Bluefish Linux下的web编辑神器-Hello,World
- redis中以目录形式存储和读取数据
- javascript(JS)---立即执行函数(immediately-invoked function expressions,IIFE)
- 抖音SEO,抖音seo优化
- MATLAB中实现图像的空间域滤波和频率域滤波
- js绘制菱形(空心和实心)
- 【Vue3.0实战逐步深入系列】为问卷系统重新布局并添加登录及注销功能
- 成都拓嘉启远:拼多多开店有差评,原因是这样的
- 操盘建议----全球顶尖交易员的成功实践和心路历程(三)
热门文章
- 程序员考公指南(逃离996的最强后路!!!)
- 微信小程序中使用 SHA256加密
- push代码到git上报错failed to push some refs to ‘远程仓库地址‘问题
- java 线程卡住_Java程序卡住及排查
- k8s开启IPVS模式
- 一招恢复删除的微信好友
- 比尔盖茨是计算机代表人物吗,IBM和比尔盖茨没有的计算机,我有!
- 如何去除discuz的powered by discuz!代码
- ML:MLOps系列讲解之《设计机器学习驱动的(ML-powered)软件—我们想要解决的业务问题是什么?》解读
- 故障智能诊断读书笔记(一)