我處於類似的情況,目前我正在發現GF集羣可以/不能爲我做什麼。
回覆1)我需要Glassfish的3.1的集羣功能
由於您的EJB是無狀態的,你不需要對會話/狀態複製的GF集羣(像你說的你自己)。您可以設置多個獨立實例並分別將它們部署到它們。但是,即使在無國籍的應用程序中,從行政角度來看,我發現GF集羣的好處非常值得。
GF集羣將確保配置自動應用於所有實例。 JNDI被自動複製。應用程序自動部署。這是一個擴展並添加額外實例的單個命令 - 稍後,您的羣集將進行擴展,並且新實例將被配置,部署,啓動並準備就緒。對我來說,只要我有超過1個實例,那就是行政天堂和足夠使用GF集羣的理由!
需要考慮的一件事(我現在正在爲此苦苦掙扎)可能是一個分佈式/協調的L2緩存,以防您的應用程序正在與數據庫交談。
Re 2)...如何設置JMS使其在集羣環境中工作?
不知道我理解你的問題...如果你想在GF之外有一個高可用的消息代理,你需要相應地設置它並自己管理它。例如,ActiveMQ有幾種設置集羣/ HA /擴展的方法。如果您使用GF提供的OpenMQ,則設置GF羣集還會提供羣集消息代理。盒子外面。
但是,經紀人集羣本身就是一個話題,不容低估。您可能需要考慮持久性和共享消息存儲等,而不管使用外部還是GF提供的集羣代理。
如果JMS是您的應用程序的一個組成部分,我建議適當注意經紀人。我可能不會使用GF經紀人,而是有一個獨立的經紀人集羣(關注點分離;例如,您可以相互獨立地升級GF /經紀人)。
Re 3)EJB定時器服務...除了使用共享數據庫來存儲定時器之外,還有什麼需要做的嗎?
如果您需要計時器到組的自動閃光一次(appserver-)的情況下,我相信你做需要GF集羣(加場的共享DB)。否則,我不明白,每個實例應該知道它是否應該觸發。但是,這很容易測試...
TL;博士
- 使用GF集羣對管理工作
- 使用一個外部的,易於理解的高可用消息代理
- 使用共享的數據庫保存您的EJB計時器
如果您要發佈3個不同的問題,您可能會有更好的運氣。 – Preston