實戰部署weblogic集羣及發佈應用(1)web
-----構建weblogic高可用系列(共7篇)數據庫
weblogic的一些基本概念:編程
a.Domain :服務器
域是做爲單元進行管理的一組相關的 WebLogic Server 資源。一個域包含一個或多個 WebLogic Server 實例,這些實例能夠是羣集實例、非羣集實例,或者是羣集與非羣集實例的組合。一個域能夠包含多個羣集。域還包含部署在域中的應用程序組件、此域中的這些應用程序組件和服務器實例所需的資源和服務。應用程序和服務器實例使用的資源和服務示例包括計算機定義、可選網絡通道、鏈接器和啓動類。網絡
b.Administration Server :ide
管理服務器是控制整個域配置的中心操做節點,管理服務器維護着整個域 Domain 的配置並將配置分配到每一個被管理服務器 Managed Server 中,每一個域中都必須有一個Administration Server。咱們能夠經過三個渠道訪問管理服務器:Admin Server console、Oracle WebLogic Scripting Tool WLST、JMX客戶端(經過WebLogic提供的API來實現),最後咱們還能夠經過SNMP協議來監控Admin Server的狀態。性能
c.Managed Server :spa
被管理服務器是一個WebLogic Server的實例,他從Admin Server那裏獲取配置信息。一般在Managed Server上部署本身的服務、組件或應用。基於性能考慮,Managed Server維護着一份只讀的域配置文件,當服務啓動的時候,會從Admin Server上同步配置文件信息,若是配置文件發生了改變,Admin Server也會將改變推送到Managed Server上。對象
d.Machine :blog
Machine 是指運行WebLogic Server實例的物理機器,一般與部屬在其上的Managed Server相關連。Machine用於Node Manager(一個運行在物理服務器上的進程,能夠遠程重啓Admin 和 Managed Server)重啓失敗的Managed Server,以及爲集羣的Managed Servers選擇合適的Session存放位置(Session避免存放在同一臺Machine上)。
e.Node Manager:
運行在物理服務器上的一個進程,用來遠程執行Admin Server 和 Managed Server的啓動 Start、中止 Stop、掛起 Suspend、重啓 Restart 操做。該進程與Domain並不關聯可是與Machine相關連,若是你想在Admin Console 中對Server進行控制,則必須安裝Node Manager。Node Manager 提供了Java-based和Script-based兩個版本,實現的功能同樣。
f. Cluster :
集羣是一組WebLogic Server的組合,集羣是爲了知足服務的高可用(High Avilability)以及可擴展(Load Balancing)需求而出現的。須要注意的是,集羣中的WebLogic Server必須版本號一致。Cluster須要注意的幾個問題:不可以跨Domain、Cluster中的服務器必須在同一個域中、Domain中能夠有多個Cluster。
weblogic集羣優勢:
a.可伸縮性
能夠動態增長部署在 WebLogic Server 羣集中的應用程序的容量以知足須要。能夠將服務器實例添加到羣集中而不會中斷服務,應用程序將繼續運行而不會影響客戶端和最終用戶。
b.高可用性
在WebLogic Server 羣集中,當服務器實例失敗時應用程序可繼續進行處理。可經過將應用程序組件部署到羣集中的多個服務器實例,「羣集」這些組件,這樣,若是在其上運行某個組件的服務器實例失敗,則將此組件部署到的其餘服務器實例能夠繼續進行應用程序處理。
羣集WebLogic Server 實例的選擇對於應用程序開發人員和客戶端是透明的。可是,瞭解啓用羣集的技術基礎結構將有助於編程人員和管理員最大化其應用程序的可伸縮性和可用性。
c.應用程序故障轉移
簡單的說,故障轉移是當應用程序組件(在下列部分中一般稱做「對象」)正在處理某個特定做業時 某些處理任務部分因爲任何緣由而變得不可用,已失敗對象的副本將結束此做業。 WebLogic Server 支持自動或手動將羣集服務器實例從一臺計算機遷移到另外一臺計算機。可遷移的受管服務器被稱做「可遷移服務器」。本功能適用於要求高可用性的環境。
d.負載平衡
負載平衡是在環境中跨計算資源與網絡資源平均分發做業和關聯的通訊。
哪一種類型的對象能夠羣集????
羣集的應用程序或應用程序組件在羣集中的多個 WebLogic Server 實例上可用。若是已羣集某個對象,則此對象的故障轉移和負載平衡是可用的。將對象均勻部署到羣集中的每一個服務器實例,能夠簡化羣集管理、維護和故障排除。
Web 應用程序可由不一樣類型的對象組成,包括企業 Java Bean (EJB),servlet 和 Java Server Pages (JSP)。每種對象類型都具備惟一的一組與控制、調用以及它如何在應用程序內起做用相關的行爲。因爲此緣由,WebLogic Server 用於支持羣集的方法,以及用於提供負載平衡和故障轉移的方法,會因不一樣的類型對象而異。可在 WebLogic Server 部署對下列類型的對象進行羣集:
a.Servlet
b.JSP
c.EJB
d.遠程方法調用(Remote Method Invocation,簡稱 RMI)對象
e.Java 消息服務 (JMS) 目標
f.Java 數據庫鏈接 (JDBC) 鏈接
什麼類型的對象不可羣集????
如下 API 和外部服務不可在 WebLogic Server 內羣集:
a.包含文件共享的文件服務
b.時間服務
在羣集的各個 WebLogic Server 實例中仍可以使用這些服務。可是,這些服務不能使用負載平衡或故障轉移功能。
weblogic集羣限制:
a.集羣中的WebLogic主機必須使用永久的靜態IP地址。動態IP地址分配不能用於集羣環境。若是服務器位於防火牆後面,而客戶機位於防火牆外面,那麼服務器必須有公共的靜態IP地址,只有這樣,客戶端才能訪問服務器。
b.集羣中的全部WebLogic服務器必須位於同一個局域網,而且必須是IP廣播可到達的。
c.集羣中的全部WebLogic服務器必須使用相同的版本。配置集羣中的服務器,使它們支持所提供的服務。對於使用了JDBC鏈接的EJB,全部部署了某EJB的服務器必須具備相同的部署與持久化配置。也就是說全部服務器都應該有相同的JDBC配置。全部部署了servlet的主機必須維護一組具備相同ACL的servlet。