JBOSS是一個開放源碼的、基于J2EE規范的應用服務器,它實現了大多數的J2EE規范,除此之外,它還提供了一些J2EE中所沒有涉及到的企業級功能,例如集群。本文主要描述JBOSS采取的集群策略,并重點介紹它的負載平衡與失效轉發機制。
由于JBOSS是一個建立在J2EE規范上的應用服務器,因此在開始之前,我們還是簡單地介紹一下J2EE規范:J2EE是一套針對于企業級分布式應用的計算環境,它定義了動態WEB頁面功能(servlet和jsp),商業組件(EJB),異步消息傳輸機制(JMS),名稱和目錄定位服務(JNDI),數據庫訪問(JDBC),與子系統的連接器(JCA),安全服務等等。
但美中不足的是J2EE并沒有定義一些企業級應用所必須的規范,例如集群,所以集群的實現只能由各廠商自行來設計實現。要實現基于J2EE規范的集群,我們通常要做如下考慮:集群的治理、負載平衡、失效轉發、服務端狀態的復制(例如JSP中的session),還要考慮同步和異步的問題(例如JMS服務就是異步方式)。假如要對這些內容做一個全面的闡述的話,估計可以寫成一本書了:) 因此本文主要探討的是:怎樣實現無狀態EJB的負載平衡與失效轉發機制?
1999年,Marc Fleury建立了JBOSS開源項目,現在它有差不多100個活躍的開發者,30個核心開發者,每月高達35萬次的下載量,它當前的最高穩定版是3.2版,4.0版正在穩定之中,自從JBOSS3.0開始就加入了集群技術,幾乎能對任何J2EE規范進行集群治理,如JNDI、JSP中的session、EJB等等。更令人振奮的是,即將發行的JBOSS4.0將會對JMS也加入集群治理特色。
這個調用實際上被JBOSS轉換成了如下的系統級調用:
但這個invocation到底是什么呢?實際上它是類Invocation的一個實例,這里有它的一個簡單的說明:
新聞熱點
疑難解答