日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在WildFly中运行多个standalone模式的实例

發(fā)布時間:2025/5/22 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在WildFly中运行多个standalone模式的实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

WildFly作為一款優(yōu)秀的EJB容器,其前身為JBoss AS。JBoss作為一款開源的應用服務器,被廣泛的應用在各種項目當中。假設(shè)我們現(xiàn)在有這樣一個項目,他是以standalone的模式運行在WildFly中,且這個項目在實際產(chǎn)品環(huán)境中需要被部署成多個實例,每個實例都會有不同的服務對象,比如不同的國家,不同角色的用戶等等。針對于不同的服務對象,在后臺的配置也會有些許的不同,比如需要連接不同的數(shù)據(jù)庫等。

?

面對這種需求,也許你首先考慮到的是我們可以為不同的服務對象編譯發(fā)行不同的發(fā)布包,這樣做也許很直觀,但是在實際交付過程中卻很難行得通。首先,不同的實例也許需要加載一些不同的配置,但是這些配置文件的名字和路徑都是都是相對固定的,也就是說你如果想針對不同的實例去加載各自配置文件,你首先需要修改配置,配置文件名甚至路徑等等,然后在代碼中做種相應的修改去加載他們,這無形中大大的增加了了維護的開銷。其次,如果一旦服務的對象很多,那么久意味著需要交付的發(fā)行包也會有許多,這無形中會增加項目發(fā)布的開銷。最后,多個項目實例放在同一個WildFly的instance中,也許會遇到一些未知的問題,比如端口沖突等等,這也會潛在的增加運維的開銷和程序的不穩(wěn)定性。

?

那么有沒有一種辦法能在不增加開銷基礎(chǔ)上解決這個問題呢?答案就是我們可以通過在WildFly中運行多個standalone模式的實例,然后在每個實例中都運行著我們的項目,再對不同的實例里項目的配置文件進行相應的修改(比如數(shù)據(jù)庫連接字符串)。這樣我們僅僅關(guān)注具體配置項的差異即可,不需要修改代碼,也不需要關(guān)心是否有端口沖突問題,更不需要發(fā)行多個發(fā)布包。這個solution聽起來是不是很誘人呢?

?

在進入正題之前我假設(shè)你已經(jīng)對JBoss或者WildFly已經(jīng)有了一定的了解,且已經(jīng)可以正確運行你機器上WildFly和你的項目。本文中,我用來演示的WildFly的版本為9.0.2.Final。



?

如果你的WildFly和你的項目都是okay的話,那么你的項目應該是在standalone目錄中。首先我們需要把項目的服務停掉,然后拷貝standalone到任意的一個文件夾,改個名字(比如standalone1)然后再拷回WildFly的根目錄當中。



?

這個時候你的standalone1目錄中也包含了一個和standalone一樣的項目,接下來我們進入standalone1目錄中修改一下你所需要修改的配置文件,比如數(shù)據(jù)庫連接等等。修改完畢之后我們進入WildFly的bin目錄,在里面建立兩個bat文件start.bat和start1.bat。然后為start.bat添加如下命令

?

Java代碼??
  • ./standalone.bat?-c?standalone-full.xml?-Djboss.server.base.dir=./../standalone?-Djboss.socket.binding.port-offset=0??
  • ?

    同理,start1.bat文件的內(nèi)容修改為

    ?

    Java代碼??
  • ./standalone.bat?-c?standalone-full.xml?-Djboss.server.base.dir=./../standalone1?-Djboss.socket.binding.port-offset=100??
  • ?

    這里我們稍微解釋一下這個命令:

    • ./standalone.bat這個是standalone模式的下的啟動文件,不多說。
    • -c standalone-full.xml是你自定義的WildFly的配置文件(這里我們用standalone-full.xml來舉例子),也不多說。
    • -Djboss.server.base.dir=./../standalone1是指定你這個WildFly的instance的根目錄。
    • -Djboss.socket.binding.port-offset=100指的是你這個實例針對于WildFly標準端口的偏移量。

    編輯完成先后啟動著兩個bat文件。

    start.bat

    ?

    start1.bat


    ?

    從控制臺上我們可以看出,兩個WildFly instances的Amdin Console分別是

    http://127.0.0.1:9990?和?on http://127.0.0.1:10090

    由此可見端口確實有了100的偏移量。。至此我們完成了WildFly多個實例的配置, 也就變向的實現(xiàn)我們文中最初的那種需求。

    ?

    ?同理我們也為不同的instance添加shutdown的命令。

    ?

    Java代碼??
  • ./jboss-cli.bat?--controller=localhost:9990?--connect?--command=:shutdown???
  • Java代碼??
  • ./jboss-cli.bat?--controller=localhost:10090?--connect?--command=:shutdown???
  • ??

    此刻你的心情是不是非常的輕松愉快呢?

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/bigben0123/p/5818607.html

    總結(jié)

    以上是生活随笔為你收集整理的在WildFly中运行多个standalone模式的实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。