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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章