weblogic為同一domain下的不同server添加不同參數


一、背景

今天應用提需求說:現有一應用部署在多個server上,該應用會使用Ddubbo.protocol.port參數指定的端口去啟動dubbo,現在想要做到的效果是為每個server的Ddubbo.protocol.port配不同的值,當訪問不同server時應用會調用不同的端口去啟動dubbo。

dubbo這東西之前都沒聽過,不是像數據庫一樣自己啟動監聽好等應用去調用反是應用利用指定的端口去啟動,這種模式開始是有些懵的;然后去看了一下又是些什么分布式的東西,這一時半會也不會看得懂。

緩過神來想想,弄懂這是什么東西不是必須的,這就是一個weblogic怎么帶自定義參數的問題,不管叫dubbo還是bubbo不管是做什么的,只要參數能帶上需求就解決了。

 

二、解決辦法探索

如果是同domain下的所有server都添加同一參數,那直接在setDomainEnv.sh中的JAVA_OPTIONS=后追加即可,但現在的需求是不同server參數值不同,所以此路不通。

不懂先百度,有說控制台--服務器--配置--服務器啟動--參數中配置即可,在配置后到config.xml中看到參數被放到<server-start>標簽中似乎有戲,但經反復啟動還是命令沒帶上配置的參數,而且細看似乎是說另外的東西,在控制台也看到另外的有像配置啟動參數的地方就放棄了繼續在控制台擺弄。

再想平時啟動是使用自己生成的startman.sh,其內容如下:

到startManagedWebLogic.sh追溯一下其如何處理傳入的參數,可能有機會插入參數。

按usage看其只接受受控server名和控制台地址兩個參數,但就相當於源碼的東西可以自己改所以不是完全沒有機會

繼續往下看內容不是很多但也沒一句句研究什么用途,拉到末尾看到了令人振奮的一句代碼:${DOMAIN_HOME}/bin/startWebLogic.sh $1 $2 $3 $4 $5 $6 $7 $8 $9

也就是說startManagedWebLogic.sh直接將其接收到的參數不加處理一齊丟給了startWebLogic.sh,shell腳本一般不會去判斷哪個參數是什么用,很大可能就是直接拼接到啟動命令后邊去啟動,事實也證明確實如此。

 

三、解決辦法

直接在startman.sh中追加要添加的-Ddubbo.protocol.port參數,如下(startman.sh是我們為了方便自己建的受控服務器腳本,實際也就是在受控服務器啟動的末尾追加):

啟動后可以看到myApp11和myApp12成功帶上了不同值的-Ddubbo.protocol.port參數:

 對於控制台,也一樣在啟動命令(startWeblogic.sh)后追加參數即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM