GlassFish配置多機集群淺析
筆者在論壇看到有人嘗試Glassfish配置多機集群失敗。筆者也在網上搜索了一下,Glassfish配置集群的文章很少,僅有的幾篇居然多是在一臺機器上配置多個實例。昏死,那還叫什么集群?本文將向您簡單介紹一下GlassFish配置多機集群的方法。
筆者又在網上和Sun的官方網站上反復搜索,終于發現一篇Glassfish配置多機集群的文章,筆者根據這篇文章在自己的VMware上配置成功。現把自己的經驗寫下來,幫助有需要的朋友。
筆者自己是在VMware中建立兩個虛擬計算機,使用的是Windows Server 2003。本來是想用Linux的,但是Ubuntu每次總要聯機查補丁,慢得要死,所以只好裝2003了。
兩臺虛擬機器,IP地址一個是192.168.1.103,一個是192.168.1.104。其中192.168.1.104作為主控代理服務器和其中一個節點服務器。
首先在每臺計算機上下載安裝JDK6(至少也得是JDK5),安裝過程在此不再敘述。
然后是安裝Glassfish。筆者用的是Glassfish v2ur1多語言版。從網上下載來后,執行
java –Xmx256m –jar glassfish-installer-v2ur1-b09d-windows-ml.jar
將安裝文檔解壓縮。然后進入Glassfish下,執行
lib\ant\bin\ant –f setup-cluster.xml
兩臺都要這么做。
其實理論上應該是一臺代理服務器,多臺節點服務器。不過筆者怕自己機器吃不消,所以就只用了兩臺機器。不過其中一臺機器既做代理又做節點,性能上有問題。自己試驗可以,實際中這么配可不行。
如果“ant –f setup-cluster.xml”執行沒有問題,那么在兩臺服務器上就都建立了一個支持集群的服務器實例。
首先,在代理服務器上進入Glassfish的bin目錄啟動實例,
asadmin strat-domain domain1
“domain1”是系統自動建立的缺省實例,你也可以建立自己的實例。格式是“create-domain --profile cluster --adminport 4848 <實例名>”,“--profile cluster”表示實例是集群實例,“--adminport 4848”表示管理端口是4848。
分別在兩個節點服務器上建立節點代理(目前192.168.1.104還兼任代理服務器職責)。
asadmin create-node-agent --host 192.168.1.104 --port 4848 agentOnFirst
建立***個代理節點。
asadmin create-node-agent --host 192.168.1.104 --port 4848 agentOnSecond
建立第二個代理節點。
建立的時候,要求你輸入代理服務器的用戶名、密碼和主密碼。缺省是用戶名“admin”,密碼“adminadmin”,主密碼我是自己建立的實例,也設定成了“adminadmin”。如果你用的是缺省實例,主密碼應該是“changeit”。命令要分別在兩個節點服務器上執行,不要在代理服務器上執行。然后分別啟動這兩個節點代理
asadmin start-node-agent agentOnFirst
asadmin start-node-agent agentOnSecond
啟動的時候同樣要求你輸入代理服務器用戶名、密碼和主密碼。如果沒有問題,系統會顯示節點啟動成功。
進入控制臺后,選擇“群集”,然后選擇“新建”按鈕。輸入集群名稱后按“確定”。筆者把自己的集群叫“MiaoCluster”。然后點擊這個集群實例,選擇右邊的“實例”選項卡,然后將剛才創建的兩個節點代理分別添加進去就可以了。***在“常規”選項卡中按“啟動群集”按鈕,如果之前一切正常,兩個節點均正常連接的情況下,集群就會成功啟動。現在就可以在“應用程序”選項卡中進行應用部署了。筆者自己寫了一個缺省的JavaEE應用,只有一個缺省的index.jsp文件,上面就一句話“”。因為不涉及到任何其他東西,所以部署很成功。
其中38080是集群的訪問端口,筆者的應用叫hello。瀏覽器成功顯示出了“Hello World!”。然后再訪問,去每個節點服務器的節點目錄下,可以看到在“C:\glassfish\nodeagents\<節點名>\<實例名>\applications\j2ee-modules\”下有hello目錄。如果你覺得這么訪問不方便,一會兒103一會兒104的,你可以在代理服務器上配置HTTP負載均衡。
【編輯推薦】