GlassFish由一個或多個domain組成,一個domain是一個管理域,每個domain和一個administration server(也稱作Domain Administration server或者DAS)關聯,并可包含0到多個standalone instance或者cluster。每個cluster有一個或多個同類型的instance,一個instance運作于一個單獨的JVM中,domain中的instance可運作在不同的實體機器上。 下面介紹一下GlassFish中的元件構成: Server Instance 一個server instance運作在一個單獨的JVM中,instance可分為兩種:standalong和cluster。DAS就是一個standalong的instance,可以完全不依賴cluster而存在。對于cluster的instance,可以對應到weblogic中的managed server,我們也稱作traffic server。 Administrative Domain Glassfish中可以建立多個domain,一個domain管理一組server instance,一個instance屬于一個單獨的domain,domain中的instance可運作在不同的實體機器中。每個domain都有一套自己的配置、日志檔案和部署區域,改變其中一個domain的配置不會影響到其它的domain。 Domain Administration Server(DAS) 一個domain有一個DAS,DAS是一個特别的server instance,它可以:驗證管理者、接收來自于管理工具的請求、與domain中的instance進行通訊。DAS通常叫做admin server或者default server,把它稱作default server是因為它是一個管理操作的預設目标。DAS中有一個倉庫儲存domain的配置和部署的應用,如果DAS當機了,不會影響其它instance的運作,但是不能對管理的配置進行修改了,這時你需要建立一個新的DAS去restore之前的配置。 Cluster 一個cluster表示一組server instance,cluster内可以共享相同的應用、資源和配置資訊。cluster可以包含不同實體機器上的instance,通過DAS可以很容易的對多機上的cluster的生命周期進行管理。Cluster能夠讓你很容易的處理水準擴充、負載均衡和當機保護等問題。因為cluster中所有的instance都擁有相同的資源和應用配置,當一個instance或機器宕了,load balancer可以發現失敗,并将traffic從失敗的instance上重定向到cluster中的其它可用的instance,并回複session的狀态。 Cluster、domain和instance之間的關系如下: 一個domain可以有0到多個cluster。 一個cluster可以有一到多個server instance。 一個cluster屬于一個單獨的domain。 Node Agent Node agent運作在每個server instance的機器中,包括運作DAS的機器。node agent的作用是: 根據DAS的訓示去啟動和停止instance。 重新開機失敗的instance。 提供失敗的server的log,以幫助遠端診斷。 同步每個server instance的本地配置倉庫和DAS的中央倉庫。 當建立了一個新的instance時,它會建立instance所需的目錄,并同步DAS的中央倉庫到instance的本地倉庫。 當删除instance時執行适當的清理。 每個實體機器至少需要一個node agent,如果一台機器中的instance屬于多個domain,則每個domain都需要一個node agent,這種方式不推薦。因為node agent要監控server instance,是以node agnet必須要一直運作。 了解了GlassFish中各個元件的作用,在企業級環境部署時,就可以比較容易的搭建相應的伺服器架構,以使應用程式得到最優的運作方式。 整體架構圖:圖一圖二 配置Instance![]()
GlassFish Components 元件介紹 圖三 叢集結構架構參考![]()
GlassFish Components 元件介紹 ![]()
GlassFish Components 元件介紹