我試着去實施可用性的熱備方式,我把它記如下:EJB和熱備份
- 客戶端發送3名相同的請求,每個服務器(我們有3個,其實虛擬機器)
- 每臺服務器收到請求並對其進行處理
- 服務器完成後,它會ping其他服務器,如果它們已完成。
- 如果他是第一個完成,他會回覆,其他人不會。
所以我在製作3個同步請求時遇到了問題。這是我通常會做,從一個servlet
class Servlet_JSP_or_Something extends HttpServlet
{
doGet(HttpReq...)
{
@EJB
RemoteInterfaceEJB ejbclass;
ejbclass.doSomething()
}
}
但是,現在,我想我會做這樣的事情
class Servlet_JSP_or_Something extends HttpServlet
{
doGet(HttpReq...)
{
@EJB(name="Server1")
RemoteInterfaceEJB ejbclass;
ejbclass.doSomething()
@EJB(name="server2")
RemoteInterfaceEJB ejbclass;
ejbclass.doSomething()
@EJB(name="server3")
RemoteInterfaceEJB ejbclass;
ejbclass.doSomething()
}
}
調用一個遠程接口,但我不是這樣,如果舒爾這將工作。我甚至不知道@EJB(name =「...」)是否足夠 或如何爲在不同的虛擬機器上運行的每個不同的ejb設置名稱。
所以問題是: ¿我該如何從同一個servlet/jsp同時調用3個相同的EJB,使得EJB在不同的機器上運行?
問題是,這將是一個單一的失敗點,我無法承受......我的問題更具技術性:我可以使用哪種註釋或庫來調用位於不同物理位置的相同ejb – fernandohur