中字幕视频在线永久在线观看免费-色偷偷88888欧美精品久久久-性生交大片免费看女人按摩-3d动漫精品啪啪一区二区下载

行業(yè)動(dòng)態(tài)

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

當(dāng)前位置:首頁(yè)>新聞中心>行業(yè)動(dòng)態(tài)
全部 4136 公司動(dòng)態(tài) 1000 行業(yè)動(dòng)態(tài) 3136

如何構(gòu)建一個(gè)的J2EE集群應(yīng)用服務(wù)器設(shè)計(jì)必須考慮的問(wèn)題

時(shí)間:2022-05-10   訪問(wèn)量:2004

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

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

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

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

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

2 EJB 技術(shù)

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

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

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

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

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

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

一個(gè)簡(jiǎn)單的訪問(wèn)示例如下:

// 獲取JNDI初始化上下文

= 新 ( );

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

// 查找 MyEJB 并獲取對(duì) Home 對(duì)象的引用

= .("MyEJB");

// Home 對(duì)象被建模為 RMI-IIOP 對(duì)象

家=

()(, .Class);

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

myref = home.();

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

.out.(myref.());

3 EJB 服務(wù)器集群

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

3.1 負(fù)載均衡(Load)

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

l 輪詢 DNS

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

l 軟件代理

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

l 硬件均衡器

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

3.2 EJB 集群技術(shù)

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

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

1)JNDI 樹(shù)代理(代理)

每個(gè) J2EE 中

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

2) 集中式 JNDI 樹(shù)

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

3) 分布式 JNDI 樹(shù)

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

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

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

發(fā)表評(píng)論:

評(píng)論記錄:

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

在線咨詢

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

點(diǎn)擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

免費(fèi)通話

24小時(shí)免費(fèi)咨詢

請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)

免費(fèi)通話

微信掃一掃

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