久久午夜夜伦鲁鲁片免费无码影视,国产一区二区三区不卡av,无码人妻一区二区三区线,成人无码av片在线观看蜜桃

行業(yè)動態(tài)

了解最新公司動態(tài)及行業(yè)資訊

當前位置:首頁>新聞中心>行業(yè)動態(tài)
全部 4097 公司動態(tài) 961 行業(yè)動態(tài) 3136

如何構(gòu)建一個的J2EE集群應用服務器設(shè)計必須考慮的問題

時間:2022-05-10   訪問量:1964

J2EE 平臺提供了一種基于組件的方法來設(shè)計、開發(fā)、組裝和部署企業(yè)應用程序。它還提供了多層分布式應用模型、組件重用、一致的安全模型和靈活的事務控制模型。近年來,它已在企業(yè)系統(tǒng)中大量使用。隨著 J2EE 應用服務器的大規(guī)模部署和客戶訪問量的激增。企業(yè)對J2EE系統(tǒng)的可擴展性和高可用性的要求越來越高,尤其是在電子商務和金融領(lǐng)域,這個問題也越來越突出。如何設(shè)計和構(gòu)建具有可擴展性和高可用性的J2EE集群應用服務器已經(jīng)成為J2EE應用服務器設(shè)計中必須考慮的問題。但是J2EE應用服務器集群是基于EJB組件的集群,與常見的Web集群技術(shù)有很大不同。實現(xiàn)的方法也有本質(zhì)的不同。

1 集群系統(tǒng)功能

集群系統(tǒng)是一組松散組合的服務器,它們組成一個虛擬服務器,為客戶端用戶提供統(tǒng)一的服務。對于這個客戶端,它在訪問集群系統(tǒng)時通常不會意識到它的服務是由哪個特定的服務器提供的。集群系統(tǒng)一般應具備高可用性、可擴展性、負載均衡、故障恢復和可維護性等特殊屬性。

高可用是集群系統(tǒng)最基本的要求,是對整個系統(tǒng)穩(wěn)定性的評價??蓴U展性是指隨著客戶端用戶數(shù)量的增加,整個系統(tǒng)繼續(xù)保持有效響應時間的能力。在可擴展性系統(tǒng)中,隨著用戶數(shù)量的增加,有效響應時間變長,呈線性變化,這也反映了系統(tǒng)的峰值負載處理能力。有效預測訪問的峰值負載已成為不可能。用戶訪問量的急劇增加使得系統(tǒng)的有效響應時間非線性變化,響應時間急劇增加,直至系統(tǒng)不堪重負而停機。一般的解決方案是升級系統(tǒng)硬件系統(tǒng),或者增加服務器。但是,不合理地增加服務器,只能讓整個集群系統(tǒng)變得越來越大。系統(tǒng)的復雜性意味著系統(tǒng)的故障率會增加服務器運維技術(shù),整個系統(tǒng)的可靠性和可維護性會降低。

因此,一個系統(tǒng)的可用性和可擴展性是一個矛盾的關(guān)系,與整個集群系統(tǒng)的實現(xiàn)方式有很大關(guān)系。

2 EJB 技術(shù)

EJB 是J2EE 應用平臺的核心。 Sun 在 EJB2.0 規(guī)范中對 EJB 的定義如下: EJB 是一種跨平臺的組件架構(gòu),用于開發(fā)和部署多層、分布式、面向?qū)ο蟮?Java 應用系統(tǒng)。共有三種類型的 EJB 組件:會話 bean、實體 bean 和消息驅(qū)動 bean。會話 bean 有兩種類型:有狀態(tài)和無狀態(tài)。

it運維服務_應急指揮系統(tǒng)運維服務_服務器運維技術(shù)

EJB 服務器的核心是提供一個或多個 EJB 容器 ( ) 供 EJB 使用。 EJB容器管理它所包含的EJB,為EJB組件的生存和執(zhí)行提供運行環(huán)境,同時還負責EJB事務管理、安全管理、資源訪問控制和一些異常處理。 EJB 容器不允許 J2EE 客戶端程序直接訪問容器中的 EJB 對象。當客戶端用戶想要訪問 EJB 時,EJB 規(guī)范要求客戶端使用 Java 名稱和目錄接口 JNDI(Java 和 )API 來定位 Bean 的主接口。訪問一個 EJB 通常需要以下三個步驟(見圖 1)(僅下面列出的調(diào)用):

1) 從 JNDI 中查找 bean 的主接口。首先,客戶端需要獲取一個JNDI初始化上下文,然后客戶端可以使用上下文方法從一個名字映射到它的home接口;

2)在home接口中使用()方法獲取Bean的接口引用;

3)通過接口中的方法使用Bean中定義的方法;

一個簡單的訪問示例如下:

// 獲取JNDI初始化上下文

= 新 ( );

it運維服務_應急指揮系統(tǒng)運維服務_服務器運維技術(shù)

// 查找 MyEJB 并獲取對 Home 對象的引用

= .("MyEJB");

// Home 對象被建模為 RMI-IIOP 對象

家=

()(, .Class);

//創(chuàng)建EJB對象,返回接口

myref = home.();

//通過接口調(diào)用EJB中實現(xiàn)的方法

.out.(myref.());

3 EJB 服務器集群

EJB服務器集群是一種基于組件的集群方式,與普通的Web集群技術(shù)有很大不同。實現(xiàn)的方法也不同。另外,由于EJB規(guī)范沒有提供任何支持集群的標準,即使有些廠商在EJB服務器中提供集群特性,如何實現(xiàn)集群也是廠商自己決定的。實施的方法也各不相同。目前大部分J2EE應用服務器都提供集群功能,如Bea應用服務器、開源JBoss應用服務器、公司提供的J2EE應用服務器等。在EJB服務器集群的設(shè)計中,負載均衡(Load)、EJB集群和集群技術(shù)是設(shè)計中涉及的主要技術(shù)。 EJB集群的實現(xiàn)是整個系統(tǒng)實現(xiàn)的核心。

3.1 負載均衡(Load)

Load的主要目的是將訪問系統(tǒng)的負載分散到不同的機器上,從而提高整個系統(tǒng)的吞吐量和并發(fā)性。它允許多臺服務器共享一些繁重的計算或I/O任務,從而消除網(wǎng)絡(luò)瓶頸,提高網(wǎng)絡(luò)的靈活性和可靠性。常用方法如下:

l 輪詢 DNS

DNS負載均衡是一種簡單有效的方法,使用簡單的域名查詢IP地址來實現(xiàn)簡單的負載均衡。給定任何地址,DNS 服務器都有一個與之對應的 IP 地址池。每次請求將域名轉(zhuǎn)換為 IP 地址時,都會循環(huán)回到 IP 地址池中的下一個地址。因此,它被稱為 DNS 循環(huán)。當進行訪問時,請求 JNDI 的客戶端會被傳遞一個 DNS 名稱作為命名服務器的 URL。每個 DNS 名稱都被轉(zhuǎn)換為不同的地址。使用這種技術(shù),每個客戶端請求都被直接發(fā)送到不同的地址。在服務器上。負載均衡的一個主要缺點是一旦服務器出現(xiàn)故障,即使及時修改了DNS設(shè)置,仍然需要等待足夠長的時間(因為DNS需要一定的刷新時間)才能生效。在此期間,部分客戶端用戶訪問仍會在故障服務器上發(fā)送。

l 軟件代理

軟件代理維護與一系列服務器的開放連接。訪問服務器時,首先要經(jīng)過軟件代理,軟件代理可以通過一些負載均衡算法(如DNS Round-robin、隨機方法、訪問均衡算法)重定向用戶對服務器的訪問。這種軟件代理方式可以及時發(fā)現(xiàn)服務器崩潰或無響應,有效避免DNS輪詢方式中的錯誤訪問。

l 硬件均衡器

這種硬件均衡器一般采用地址轉(zhuǎn)換技術(shù),將一個外部IP地址映射為多個內(nèi)部IP地址,并為每個TCP連接請求動態(tài)使用其中一個內(nèi)部地址,以達到負載均衡的目的。一般可以用第四層(或以上)的開關(guān)來實現(xiàn)。該交換機是根據(jù)IP地址和TCP端口交換虛擬連接,直接將數(shù)據(jù)包發(fā)送到目的計算機的相應端口。通過交換機,可以將來自外部的初始連接請求關(guān)聯(lián)到多個內(nèi)部地址,從而建立虛擬連接,實現(xiàn)負載均衡。這種第四層交換是基于硬件芯片的,所以網(wǎng)絡(luò)傳輸速度和交換速度都遠超普通的軟件代理方式。比如使用Cisco CSS 11150(一個L4)可以實現(xiàn)硬件均衡。

3.2 EJB 集群技術(shù)

要訪問 EJB 容器中的 EJB,客戶端必須首先訪問 JNDI 命名服務器 [參見第 2 節(jié) EJB 技術(shù)]。因此,J2EE的EJB服務器實現(xiàn)集群()的核心也是圍繞著JNDI展開的。根據(jù)系統(tǒng)中JNDI命名樹的管理和組織方式不同,一般的EJB集群可以分為以下三種:

應急指揮系統(tǒng)運維服務_it運維服務_服務器運維技術(shù)

1)JNDI 樹代理(代理)

每個 J2EE 中

維護自己的本地私有JNDI樹,里面的每臺服務器都不知道其他服務器的狀態(tài)和存在,只有Proxy服務知道里面每臺服務器的狀態(tài),可以訪問里面的任意一臺JNDI樹上的服務器,這就要求每臺服務器在啟動和啟動后都與Proxy服務保持聯(lián)系,以便Proxy知道自己的工作和所有的EJB對象。要訪問 EJB 對象,您必須首先訪問 JNDI 代理。通過 Proxy,您可以重定向?qū)λ?EJB 對象的訪問(參見圖 2))。這種方法的優(yōu)點是實現(xiàn)簡單,只需要設(shè)計一個JNDI Proxy代理即可。對于每個應用服務器沒有復雜的要求;系統(tǒng)具有良好的可擴展性。要升級系統(tǒng),您可以簡單地添加服務器。但是這種方式有一個致命的缺點,就是如果Proxy服務出現(xiàn)故障,整個系統(tǒng)將無法正常工作??煽啃圆睢?/p>

2) 集中式 JNDI 樹

當使用集中式集群時,整個集群系統(tǒng)中只有一個主命名服務器,負責管理和維護集群中全局的集中式JNDI樹。集群中的所有 EJB 服務器啟動后,都必須將對象綁定到這個名稱服務器,每個 EJB 服務器不需要維護自己的私有 JNDI 樹,由這個主名稱服務器維護。如果要將 EJB 部署在集群中的多個服務器上,那么每個服務器都可以將同一個主對象綁定到名稱服務器。當客戶端向名稱服務器請求訪問該 EJB 的 home 對象時,所有 home 對象都可以將對象引用返回給客戶端,也可以根據(jù)平衡算法返回一個服務器的 home 對象引用(見圖 3))。為了提高整個系統(tǒng)的可靠性,這種集中式的方式必須考慮名稱服務器的備份問題服務器運維技術(shù),通常在同時使用多個名稱服務器的大型系統(tǒng)中,可以在名稱服務器之間使用JNDI樹復制的方式,或者EJB 服務器可用于綁定多個服務器。比如公司的EJB應用服務器就是采用這種方式。 CORBA Cos 集中管理所有應用服務器的 JNDI 樹。使用這種集中式設(shè)計模式,系統(tǒng)設(shè)計簡單,但同時也帶來了集中式系統(tǒng)的固有缺陷。首先,在系統(tǒng)設(shè)計時,要考慮命名服務器的備份問題,而隨著集群系統(tǒng)越來越大,整個系統(tǒng)中命名服務器的瓶頸問題也越來越突出。

3) 分布式 JNDI 樹

在這個模型中,每一個應用服務器都有自己的名字服務器,名字服務器不僅維護一個私有的本地JNDI樹,還維護一個全局共享的JNDI樹。本地 JNDI 樹僅綁定部署在本地應用程序服務器中的對象,而全局 JNDI 樹保存其他應用程序服務器上本地 JNDI 樹的副本。這樣,任何名稱服務器都可以通過其本地私有和全局共享的 JNDI 樹來訪問,從而在整個系統(tǒng)中定位和部署 EJB 對象。一般采用多播的形式。其中一臺應用服務器啟動后,加入這個組播組,然后利用IP組播技術(shù),將自己本地的JNDI樹復制到全局共享JNDI樹中的其他服務器上,這樣其他服務器就可以擁有該JNDI樹的副本它。同時,應用服務器必須在其他服務器之間保持(心跳)檢測,以便隨時檢測其他服務器的活動狀態(tài)。如果一個服務器異常崩潰,這個應用服務器會從它的全局共享JNDI樹中刪除這個異常服務器的JNDI副本,其他活動服務器也必須做類似的操作。這種分布式模型系統(tǒng)最大的優(yōu)點是具有很強的可擴展性。如果再向系統(tǒng)添加一臺服務器,則其他服務器無法進行任何更改。而且整個系統(tǒng)采用分布式系統(tǒng),增強了可用性,系統(tǒng)中任何一個服務器的故障都不會影響整個系統(tǒng)的正常工作。這種方法也是目前使用最多的設(shè)計方法。 BEA的應用服務器和JBoss應用服務器采用這種設(shè)計方式。

上一篇:有點用的:中國排名前100的IT公司排序(組圖)

下一篇:深圳市有哪些較為專業(yè)的IT運維外包協(xié)議?

發(fā)表評論:

評論記錄:

未查詢到任何數(shù)據(jù)!

在線咨詢

點擊這里給我發(fā)消息 售前咨詢專員

點擊這里給我發(fā)消息 售后服務專員

在線咨詢

免費通話

24小時免費咨詢

請輸入您的聯(lián)系電話,座機請加區(qū)號

免費通話

微信掃一掃

微信聯(lián)系
返回頂部