小白入職記(三):初識(shí)JBoss應(yīng)用服務(wù)器(二)

上一篇博客主要講了前三個(gè)部分(上一篇博客地址)琅捏,今天介紹目錄及配置文件解析。
1.JBoss是什么
2.與其它服務(wù)器(tomcat,apache)比較
3.快速搭建
4.目錄及配置文件解析
5.應(yīng)用部署
6.搭建服務(wù)器集群

四涛浙、目錄及配置文件解析

jboss-eap-6.4版本的目錄
  1. 頂級(jí)目錄和文件
目錄 功能
appclient/ 包含應(yīng)用程序客戶容器的配置細(xì)節(jié)。
bin/ 包含 Red Hat 企業(yè)版 Linux 和微軟 Windows 上 JBoss EAP 的啟動(dòng)腳本。
docs/ 許可證文件眯亦、schema 和示例檐束。
domain/ 配置文件辫秧、部署內(nèi)容和 JBoss EAP 6 以受管域運(yùn)行時(shí)使用的可寫入?yún)^(qū)域。
modules/ 當(dāng)有服務(wù)請求時(shí) JBoss EAP 6 動(dòng)態(tài)加載的模塊被丧。
standalone/ 配置文件盟戏、部署內(nèi)容和 JBoss EAP 6 以獨(dú)立服務(wù)器運(yùn)行時(shí)使用的可寫入?yún)^(qū)域。
welcome-content/ 包含默認(rèn)安裝里 8080 端口上的 Welcome 應(yīng)用程序使用的內(nèi)容甥桂。
jboss-modules.jar 加載模塊的引導(dǎo)機(jī)制抓半。
  1. standalone里的目錄
目錄 功能
configuration/ 用于獨(dú)立服務(wù)器的配置文件。這些文件是通過管理控制臺(tái)和 CLI 進(jìn)行修改的格嘁,不能直接進(jìn)行編輯笛求。
deployments/ 關(guān)于已部署服務(wù)的信息。獨(dú)立服務(wù)器包含一個(gè)部署掃描器,您可以在這個(gè)目錄里放入要部署的歸檔文件探入。然而狡孔,我們推薦的方法是用管理控制臺(tái)或管理 CLI 來管理部署。
lib/ 附屬于獨(dú)立服務(wù)器模式的外部庫蜂嗽。默認(rèn)為空苗膝。
tmp/ 包含臨時(shí)數(shù)據(jù),如針對服務(wù)器檢驗(yàn)本地用戶的管理 CLI 使用的共享密鑰機(jī)制相關(guān)的文件植旧。
  1. domain里的目錄
目錄 功能
configuration/ 用于受管域的配置文件辱揭。這些文件是通過管理控制臺(tái)和 CLI 進(jìn)行修改的,不能直接進(jìn)行編輯病附。
data/ 包含 Red Hat 企業(yè)版 Linux 和微軟 Windows 上 JBoss EAP 的啟動(dòng)腳本问窃。
log/ 許可證文件、schema 和示例完沪。
servers/ 配置文件域庇、部署內(nèi)容和 JBoss EAP 6 以受管域運(yùn)行時(shí)使用的可寫入?yún)^(qū)域。
tmp/ 當(dāng)有服務(wù)請求時(shí) JBoss EAP 6 動(dòng)態(tài)加載的模塊覆积。
  1. bin目錄下部分文件
文件名 功能 使用方式
standalone.bat/.sh JBoss啟動(dòng)文件(獨(dú)占模式) sh ./standalone.sh
domain.bat/.sh JBoss啟動(dòng)文件(域模式) sh ./domain.sh
jboss-cli.bat/sh JBoss管理工具 sh ./jboss-cli.sh (--gui以桌面程序啟動(dòng)) ?,?connect localhost:9999(連接到Jboss)
jconsole.bat/.sh Java監(jiān)控和管理控制臺(tái) sh ./jconsole.sh
add-user.bat/.sh 新增訪問web管理控制臺(tái)的用戶 sh ./add-user.sh (分為管理型和應(yīng)用型用戶) ,? 創(chuàng)建用戶后即可訪問localhost:9990并登錄
  1. jboss配置文件
    這里主要介紹一下standalone/configuration/目錄下的standalone.xml文件听皿,后面可能會(huì)補(bǔ)充關(guān)于domain.xml的配置文件。
  • 擴(kuò)展模塊
    <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
        <extension module="org.jboss.as.connector"/>
        <extension module="org.jboss.as.deployment-scanner"/>
        <extension module="org.jboss.as.ee"/>
        <extension module="org.jboss.as.ejb3"/>
        <extension module="org.jboss.as.jaxrs"/>
        <extension module="org.jboss.as.jdr"/>
        <extension module="org.jboss.as.jmx"/>
        <extension module="org.jboss.as.jpa"/>
        <extension module="org.jboss.as.jsf"/>
        <extension module="org.jboss.as.logging"/>
        <extension module="org.jboss.as.mail"/>
        <extension module="org.jboss.as.naming"/>
        <extension module="org.jboss.as.pojo"/>
        <extension module="org.jboss.as.remoting"/>
        <extension module="org.jboss.as.sar"/>
        <extension module="org.jboss.as.security"/>
        <extension module="org.jboss.as.threads"/>
        <extension module="org.jboss.as.transactions"/>
        <extension module="org.jboss.as.web"/>
        <extension module="org.jboss.as.webservices"/>
        <extension module="org.jboss.as.weld"/>
    </extensions>

由于jboss6以上是以模塊化啟動(dòng)宽档,因此配置文件中會(huì)引入依賴的模塊尉姨。

  • 管理模塊
 <management>
        <security-realms>
          <!--管理用戶,設(shè)置管理員用戶吗冤、組的保存路徑及文件-->
            <security-realm name="ManagementRealm">
                <authentication>
                    <local default-user="$local" skip-group-loading="true"/>
                    <properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"/>
                </authentication>
                <authorization map-groups-to-roles="false">
                    <properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
                </authorization>
            </security-realm>
        <!--應(yīng)用用戶啊送,設(shè)置應(yīng)用用戶、角色的保存路徑及文件-->
            <security-realm name="ApplicationRealm">
                <authentication>
                    <local default-user="$local" allowed-users="*" skip-group-loading="true"/>
                    <properties path="application-users.properties" relative-to="jboss.server.config.dir"/>
                </authentication>
                <authorization>
                    <properties path="application-roles.properties" relative-to="jboss.server.config.dir"/>
                </authorization>
            </security-realm>
        </security-realms>
        <audit-log>
            <formatters>
                <json-formatter name="json-formatter"/>
            </formatters>
            <handlers>
                <file-handler name="file" formatter="json-formatter" relative-to="jboss.server.data.dir" path="audit-log.log"/>
            </handlers>
            <logger log-boot="true" log-read-only="false" enabled="false">
                <handlers>
                    <handler name="file"/>
                </handlers>
            </logger>
        </audit-log>
        <management-interfaces>
            <native-interface security-realm="ManagementRealm">
                <socket-binding native="management-native"/>
            </native-interface>
            <http-interface security-realm="ManagementRealm">
                <socket-binding http="management-http"/>
            </http-interface>
        </management-interfaces>
        <access-control provider="simple">
         <!--用戶角色展示-->
            <role-mapping>
                <role name="SuperUser">
                    <include>
                        <user name="$local"/>
                    </include>
                </role>
            </role-mapping>
        </access-control>
    </management>

管理模塊主要是配置管理控制臺(tái)的信息欣孤,主要分為管理型用戶和應(yīng)用型用戶馋没,上面講的add-user工具就是添加的這兩種角色。

  • profile模塊
    這個(gè)模塊中包含了多個(gè)子模塊降传。
    1.profile-日志子模塊
 <subsystem xmlns="urn:jboss:domain:logging:1.5">
            <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>
<!---server日志切割滾動(dòng)模式-->
            <periodic-rotating-file-handler name="FILE" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="server.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>
            <logger category="com.arjuna">
                <level name="WARN"/>
            </logger>
<!--以下category日志的級(jí)別設(shè)置-->
            <logger category="org.apache.tomcat.util.modeler">
                <level name="WARN"/>
            </logger>
            <logger category="org.jboss.as.config">
                <level name="DEBUG"/>
            </logger>
            <logger category="sun.rmi">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb.config">
                <level name="ERROR"/>
            </logger>
  <!--日志輸出定義篷朵,日志輸出到兩個(gè)handler里面:CONSOLE和FH-->
            <root-logger>
                <level name="INFO"/>
                <handlers>
                    <handler name="CONSOLE"/>
                    <handler name="FILE"/>
                </handlers>
            </root-logger>
   <!--日志的格式-->
            <formatter name="PATTERN">
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <formatter name="COLOR-PATTERN">
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
        </subsystem>

2.profile-數(shù)據(jù)源datasource子模塊

  <subsystem xmlns="urn:jboss:domain:datasources:1.2">
            <datasources>
!--默認(rèn)數(shù)據(jù)源配置,jndi-name婆排、pool-name声旺、connection-url、driver段只、pool腮猖、security設(shè)置-->
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <drivers>
 <!--h2數(shù)據(jù)源配置-->
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>

3.profile-自動(dòng)部署模塊

        <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
            <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/>
        </subsystem>

jboss會(huì)監(jiān)聽這里配置的自動(dòng)掃描地址,若有文件的變動(dòng)赞枕,就會(huì)自動(dòng)部署項(xiàng)目澈缺。上面配置的意思是坪创,每隔5秒掃描deployments路徑下的文件,若有變動(dòng)姐赡,則部署項(xiàng)目莱预。

4.profile-javaEE模塊

        <subsystem xmlns="urn:jboss:domain:ee:1.2">
 <!--對標(biāo)準(zhǔn)的EE xml文件中的屬性是否替換-->
            <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
   <!--對標(biāo)準(zhǔn)的jboss xml文件中的屬性是否替換-->
            <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
   <!--對java注釋的屬性是否替換-->
            <annotation-property-replacement>false</annotation-property-replacement>
        </subsystem>

5.profile-還有很多模塊就不在這里一一解釋了。

  • interface模塊
    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:127.0.0.1}"/>
        </interface>
        <!-- TODO - only show this if the jacorb subsystem is added  -->
        <interface name="unsecure">
            <!--
              ~  Used for IIOP sockets in the standard configuration.
              ~                  To secure JacORB you need to setup SSL 
              -->
            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
        </interface>
    </interfaces>

注意:這些ip的缺省值均為127.0.0.1项滑,但是不能改為實(shí)際ip依沮,否則將不能訪問
解決辦法新增一個(gè)ipv4的interface

<interface name="any">
<any-ipv4-address />
</interface>

然后在socket-binding中的default-interface變?yōu)閍ny即可

<socket-binding-group name="standard-sockets" default-interface="any" port-offset="${jboss.socket.binding.port-offset:0}">

  • socket-binding模塊
    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
 <!--對應(yīng)jboss-cli連接jboss控制臺(tái)的端口-->
        <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
 <!--對應(yīng)jboss web端管理控制臺(tái)的端口-->
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
        <socket-binding name="ajp" port="8009"/>
 <!--對應(yīng)jboss 啟動(dòng)監(jiān)聽端口-->
        <socket-binding name="http" port="8080"/>
        <socket-binding name="https" port="8443"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"/>
        </outbound-socket-binding>
    </socket-binding-group>

這個(gè)模塊主要是配置綁定的ip和端口。
1.default-interface表示的是用哪一個(gè)ip配置
2.port-offset代表的端口偏移量枪狂,比如port-offset為5危喉,那么下面的所有配置的端口都會(huì)在配置基礎(chǔ)上+5(比如配置為8080,結(jié)果為8085)
3.其它socket-binding項(xiàng)已經(jīng)在代碼中注釋解釋了

由于篇幅問題州疾,所以準(zhǔn)備將后面的幾部分內(nèi)容放到下一篇博客中辜限,到時(shí)候我會(huì)把鏈接發(fā)出來的。

作為一個(gè)萌新孝治,非常希望大家給我一點(diǎn)建議或指出我的不足,我一定虛心接受审磁,若能讓其它小伙伴得到一點(diǎn)點(diǎn)幫助或啟發(fā)谈飒,我會(huì)感到非常開心的(''),我的qq1252615137态蒂,歡迎小伙伴加我交流杭措,我們共同進(jìn)步~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钾恢,隨后出現(xiàn)的幾起案子手素,更是在濱河造成了極大的恐慌,老刑警劉巖瘩蚪,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泉懦,死亡現(xiàn)場離奇詭異,居然都是意外死亡疹瘦,警方通過查閱死者的電腦和手機(jī)崩哩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來言沐,“玉大人邓嘹,你說我怎么就攤上這事∠找龋” “怎么了汹押?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長起便。 經(jīng)常有香客問我棚贾,道長窖维,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任鸟悴,我火速辦了婚禮陈辱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘细诸。我一直安慰自己沛贪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布震贵。 她就那樣靜靜地躺著利赋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猩系。 梳的紋絲不亂的頭發(fā)上媚送,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音寇甸,去河邊找鬼塘偎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拿霉,可吹牛的內(nèi)容都是我干的吟秩。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼绽淘,長吁一口氣:“原來是場噩夢啊……” “哼涵防!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沪铭,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤壮池,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后杀怠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體椰憋,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年赔退,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熏矿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡离钝,死狀恐怖票编,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卵渴,我是刑警寧澤慧域,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站浪读,受9級(jí)特大地震影響昔榴,放射性物質(zhì)發(fā)生泄漏辛藻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一互订、第九天 我趴在偏房一處隱蔽的房頂上張望吱肌。 院中可真熱鬧,春花似錦仰禽、人聲如沸氮墨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽规揪。三九已至,卻和暖如春温峭,著一層夾襖步出監(jiān)牢的瞬間猛铅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工凤藏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奸忽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓揖庄,卻偏偏與公主長得像栗菜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子抠艾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容