用于通信量引導(dǎo)器環(huán)境中的資源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)和配置的系統(tǒng)和方法
【專利摘要】這里描述了用于與負(fù)載均衡器或通信量引導(dǎo)器一起使用的系統(tǒng)和方法及其管理,其中,通信量引導(dǎo)器是作為基于軟件的負(fù)載均衡器而提供的,該負(fù)載均衡器可以用于將快速的、可靠的、可伸縮的和安全的用于負(fù)載均衡互聯(lián)網(wǎng)和其他通信量的平臺(tái)交付給后端源服務(wù)器,諸如web服務(wù)器、應(yīng)用服務(wù)器或其他資源服務(wù)器。根據(jù)實(shí)施例,所述系統(tǒng)包括具有一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例的通信量引導(dǎo)器,其被配置為從客戶端接收請(qǐng)求并且將來自客戶端的請(qǐng)求傳送給具有一個(gè)或多個(gè)服務(wù)器池的源服務(wù)器。描述了用于在這樣的通信量引導(dǎo)器或其他環(huán)境中提供主動(dòng)-被動(dòng)路由、過載保護(hù)和速率加速、源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)、配置http負(fù)載均衡的靈活性、和/或動(dòng)態(tài)高速緩存數(shù)據(jù)解壓縮的系統(tǒng)和方法。
【專利說明】用于通信量引導(dǎo)器環(huán)境中的資源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)和配置的系統(tǒng)和方法
[0001]版權(quán)聲明
[0002]本專利文檔的公開內(nèi)容的一部分包含受版權(quán)保護(hù)的資料。版權(quán)所有人不反對(duì)任何人如該專利文檔或?qū)@_內(nèi)容在專利商標(biāo)局專利文件或記錄中所登載的那樣對(duì)它進(jìn)行復(fù)制再現(xiàn),但是保留所有其他版權(quán)權(quán)利。
[0003]優(yōu)先權(quán)
[0004]本申請(qǐng)要求以下專利申請(qǐng)的優(yōu)先權(quán):2011年9月27日提交的題為“SYSTEMS ANDMETHODS FOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR(CORE FEATURES)” 的美國(guó)臨時(shí)專利申請(qǐng)N0.61/539886 ;2011年9月27日提交的題為“SYSTEMS AND METHODSFOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR(ADMIN FEATURES)” 的美國(guó)臨時(shí)專利申請(qǐng)N0.61/539900 ;2012年8月31日提交的題為“SYSTEM AND METHODFOR PROVIDING ACTIVE-PASSIVE ROUTING IN A TRAFFIC DIRECTOR ENVIRONMENT” 的美國(guó)專利申請(qǐng)N0.13/601087 ;2012年8月31日提交的題為“SYSTEM AND METHOD FORSURGE PROTECTION AND RATE ACCELERATION IN A TRAFFIC DIRECTOR ENVIRONMENT” 的美國(guó)專利申請(qǐng)N0.13/601428 ;2012年8月31日提交的題為“SYSTEM AND METHOD FORDYNAMIC DISCOVERY OF ORIGIN SERVERS IN A TRAFFIC DIRECTOR ENVIRONMENT” 的美國(guó)專利申請(qǐng)N0.13/601530 ;2012年8月31日提交的題為“SYSTEM AND METHOD FORPROVIDING FLEXIBILITY IN CONFI⑶RING HTTP LOAD BALANCING IN A TRAFFIC DIRECTORENVIRONMENT”的美國(guó)專利申請(qǐng)N0.13/601632 ;以及2012年9月24日提交的題為“SYSTEM AND METHOD FOR DYNAMIC CACHE DATA DECOMPRESSION IN A TRAFFIC DIRECTORENVIRONMENT”的美國(guó)專利申請(qǐng)N0.13/625716,這些專利申請(qǐng)均通過引用合并與此。
【技術(shù)領(lǐng)域】
[0005]本發(fā)明總體上涉及在應(yīng)用服務(wù)器、中間件機(jī)器或其他計(jì)算環(huán)境中使用的負(fù)載均衡器或通信量引導(dǎo)器(traffic director),更特別地,涉及用于在通信量引導(dǎo)器或其他環(huán)境中提供主動(dòng)-被動(dòng)路由、過載保護(hù)和速率加速、源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)、配置http負(fù)載均衡的靈活性、和/或動(dòng)態(tài)高速緩存數(shù)據(jù)解壓縮的系統(tǒng)和方法。
【背景技術(shù)】
[0006]典型的企業(yè)級(jí)計(jì)算環(huán)境可以包括旨在被其他計(jì)算機(jī)或操作各種不同類型的計(jì)算裝置的用戶通過網(wǎng)絡(luò)(例如,公司的內(nèi)部以太網(wǎng)或互聯(lián)網(wǎng))訪問的、許多不同類型的計(jì)算資源(例如,web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器或其他類型的資源服務(wù)器)。熟悉的例子是用戶可以通過其經(jīng)由互聯(lián)網(wǎng)訪問web服務(wù)器的客戶端計(jì)算機(jī)(諸如配備有web瀏覽器應(yīng)用程序的膝上型電腦)的使用。
[0007]如今的組織越來越依賴于他們的可以隨時(shí)幾乎從任何地方以高水平的性能獲得的計(jì)算資源。確保高效率地分配這樣的資源的任務(wù)通常需要使用負(fù)載均衡裝置來根據(jù)其分發(fā)策略以公平的方式分發(fā)來自客戶端的對(duì)于目標(biāo)資源的請(qǐng)求。這些是可以與其一起使用本發(fā)明的實(shí)施例的環(huán)境的類型。
【發(fā)明內(nèi)容】
[0008]本文中描述了用于與負(fù)載均衡器或通信量引導(dǎo)器一起使用的系統(tǒng)和方法及其管理。根據(jù)實(shí)施例,在本文中一些實(shí)施例中被稱為“Oracle通信量引導(dǎo)器”(OTD)的通信量引導(dǎo)器是作為基于軟件的負(fù)載均衡器而提供的,該負(fù)載均衡器可以用于將快速的、可靠的、可伸縮的和安全的用于負(fù)載均衡互聯(lián)網(wǎng)和其他通信量的平臺(tái)交付給后端源服務(wù)器,諸如web服務(wù)器、應(yīng)用服務(wù)器或其他資源服務(wù)器。
[0009]通信量引導(dǎo)器的實(shí)施例在應(yīng)用服務(wù)器、中間件機(jī)器和類似的高性能企業(yè)級(jí)計(jì)算環(huán)境(諸如Oracle WebLogic和Exalogic環(huán)境)中特別有用。
[0010]根據(jù)實(shí)施例,所述系統(tǒng)包括具有一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例的通信量引導(dǎo)器,其被配置為從客戶端接收請(qǐng)求并且將來自客戶端的請(qǐng)求傳送給具有一個(gè)或多個(gè)服務(wù)器池的源服務(wù)器。根據(jù)實(shí)施例,所述系統(tǒng)包括:高速網(wǎng)絡(luò)基礎(chǔ)設(shè)施,其提供用于供源服務(wù)器在接收請(qǐng)求時(shí)使用的通信協(xié)議或套接字(socket); —個(gè)或多個(gè)協(xié)議終結(jié)器/仿真器,其用于與所述通信協(xié)議或套接字一起使用;以及入站套接字配置和出站套接字配置,其一起指示通信量引導(dǎo)器在將請(qǐng)求傳送給源服務(wù)器中的特定源服務(wù)器時(shí)應(yīng)使用哪個(gè)終結(jié)器/仿真器。
[0011]根據(jù)實(shí)施例,源服務(wù)器池被配置為:該池內(nèi)的服務(wù)器中的至少一個(gè)或多個(gè)被分配為主服務(wù)器,并且該池內(nèi)的服務(wù)器中的至少一個(gè)或多個(gè)其他服務(wù)器被分配為備用服務(wù)器。通信量引導(dǎo)器被配置為:它確定池中的主服務(wù)器的可用性,并且在池包括足夠數(shù)量的可用主服務(wù)器時(shí),將請(qǐng)求僅引導(dǎo)到主服務(wù)器。
[0012]根據(jù)實(shí)施例,通信量引導(dǎo)器處的通信量監(jiān)視器監(jiān)視通信量引導(dǎo)器實(shí)例與源服務(wù)器內(nèi)的資源服務(wù)器中的一個(gè)或多個(gè)之間的通信量,包括連接的數(shù)量。通信量引導(dǎo)器可以設(shè)置控制通信量(包括連接的數(shù)量)的通信量速率,以提供過載保護(hù)或速率加速/減速。
[0013]根據(jù)實(shí)施例,健康檢查子系統(tǒng)周期性地檢查其配置的資源服務(wù)器的健康,并且還通過下述方式來嘗試檢測(cè)一個(gè)或多個(gè)池中的變化,即,將請(qǐng)求發(fā)送給被配置為池內(nèi)的源服務(wù)器的任何新的服務(wù)器實(shí)例,接收適當(dāng)?shù)捻憫?yīng),并相應(yīng)地更新配置。
[0014]根據(jù)實(shí)施例,所述系統(tǒng)包括:高速網(wǎng)絡(luò)基礎(chǔ)設(shè)施,其提供用于供源服務(wù)器在接收請(qǐng)求時(shí)使用的通信協(xié)議或套接字;一個(gè)或多個(gè)協(xié)議終結(jié)器/仿真器,其用于與所述通信協(xié)議或套接字一起使用;以及入站套接字配置和出站套接字配置,其一起指示通信量引導(dǎo)器在將請(qǐng)求傳送給源服務(wù)器中的特定源服務(wù)器時(shí)應(yīng)使用哪個(gè)終結(jié)器/仿真器。
[0015]根據(jù)實(shí)施例,通信量引導(dǎo)器可以被配置為:對(duì)存儲(chǔ)在其高速緩存中的數(shù)據(jù)進(jìn)行壓縮,并且通過將來自源服務(wù)器的內(nèi)容作為壓縮數(shù)據(jù)提供,或者如果特定客戶端優(yōu)選接收該數(shù)據(jù)的非壓縮版本,則通過在提供該數(shù)據(jù)之前動(dòng)態(tài)地對(duì)該數(shù)據(jù)進(jìn)行解壓縮,來對(duì)來自客戶端的請(qǐng)求做出響應(yīng)。根據(jù)實(shí)施例,通信量引導(dǎo)器可以被配置為使用硬件輔助的壓縮基元(primitive),以進(jìn)一步改進(jìn)其數(shù)據(jù)壓縮和解壓縮的性能。
【專利附圖】
【附圖說明】
[0016]圖1例示根據(jù)實(shí)施例的包括負(fù)載均衡器或通信量引導(dǎo)器的計(jì)算環(huán)境。[0017]圖2例示根據(jù)實(shí)施例的通信量引導(dǎo)器與一個(gè)或多個(gè)池或源服務(wù)器的使用。
[0018]圖3例示根據(jù)實(shí)施例的通信量引導(dǎo)器架構(gòu)。
[0019]圖4例示根據(jù)實(shí)施例的通信量引導(dǎo)器管理環(huán)境和接口。
[0020]圖5例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的主動(dòng)/被動(dòng)路由的使用。
[0021]圖6進(jìn)一步例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的主動(dòng)/被動(dòng)路由的使用。
[0022]圖7是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器中的主動(dòng)/被動(dòng)路由的方法的流程圖。
[0023]圖8例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的過載保護(hù)的使用。
[0024]圖9例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的速率加速的使用。
[0025]圖10是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器中的過載保護(hù)的方法的流程圖。
[0026]圖11是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器中的速率加速的方法的流程圖。
[0027]圖12例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)。
[0028]圖13進(jìn)一步例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)。
[0029]圖14是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器中的源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)的方法的流程圖。
[0030]圖15是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器中的源服務(wù)器的動(dòng)態(tài)發(fā)現(xiàn)的另一方法的流程圖。
[0031]圖16例示根據(jù)實(shí)施例的通信量引導(dǎo)器的使用。
[0032]圖17是根據(jù)實(shí)施例的使用通信量引導(dǎo)器的方法的流程圖。
[0033]圖18例示根據(jù)實(shí)施例的通信量引導(dǎo)器環(huán)境中的動(dòng)態(tài)HTTP解壓縮的使用。
[0034]圖19是根據(jù)實(shí)施例的用于提供通信量引導(dǎo)器環(huán)境中的動(dòng)態(tài)HTTP解壓縮的方法的流程圖。
[0035]圖20例示根據(jù)實(shí)施例的對(duì)于用于與通信量引導(dǎo)器環(huán)境中的動(dòng)態(tài)HTTP解壓縮一起使用的硬件基元的支持。
【具體實(shí)施方式】
[0036]如上所述,如今的組織越來越依賴于他們的可以隨時(shí)幾乎從任何位置以高水平的性能獲得的計(jì)算資源。確保高效率地分配這樣的資源的任務(wù)通常需要使用負(fù)載均衡裝置來根據(jù)其分發(fā)策略以公平的方式分發(fā)來自客戶端的對(duì)于目標(biāo)資源的請(qǐng)求。
[0037]本文中描述了用于與負(fù)載均衡器或通信量引導(dǎo)器一起使用的系統(tǒng)和方法及其管理。根據(jù)實(shí)施例,在本文中一些實(shí)施例中被稱為“Oracle通信量引導(dǎo)器”(OTD)的通信量引導(dǎo)器是作為基于軟件的負(fù)載均衡器而提供的,該負(fù)載均衡器可以用于將快速的、可靠的、可伸縮的和安全的用于負(fù)載均衡互聯(lián)網(wǎng)和其他通信量的平臺(tái)交付給后端源服務(wù)器,諸如web服務(wù)器、應(yīng)用服務(wù)器或其他資源服務(wù)器。
[0038]通信量引導(dǎo)器的實(shí)施例在應(yīng)用服務(wù)器、中間件機(jī)器和類似的高性能企業(yè)級(jí)計(jì)算環(huán)境(諸如Oracle WebLogic和Exalogic環(huán)境)中特別有用。
[0039]根據(jù)實(shí)施例,通信量引導(dǎo)器用作通信量的入口點(diǎn),所述通信量諸如為從客戶端或客戶端裝置接收的用于傳送到資源的后端或充當(dāng)源服務(wù)器的資源服務(wù)器的超文本傳輸協(xié)議(HTTP )和安全超文本傳輸協(xié)議(HTTPS )請(qǐng)求。每個(gè)通信量弓I導(dǎo)器包括通過配置定義的一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例,其中,該配置提供關(guān)于該實(shí)例的各個(gè)元素(諸如監(jiān)聽器、源服務(wù)器、故障轉(zhuǎn)移組和日志)的信息。
[0040]可以與所述系統(tǒng)一起使用的客戶端的類型的例子包括計(jì)算機(jī)服務(wù)器、膝上型計(jì)算機(jī)、便攜式裝置(諸如智能電話)以及其他類型的計(jì)算裝置,這些類型的客戶端中的一些可以包括例如用于訪問web服務(wù)器的web瀏覽器應(yīng)用程序。
[0041]可以用作源服務(wù)器的資源的類型的例子包括輕量目錄訪問協(xié)議(LDAP)服務(wù)器、web服務(wù)器、多媒體服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器以及其他類型的資源。
[0042]根據(jù)實(shí)施例,通信量引導(dǎo)器可以執(zhí)行諸如以下的任務(wù):基于一種或多種負(fù)載均衡方法來將請(qǐng)求分發(fā)給源服務(wù)器;基于指定的規(guī)則對(duì)請(qǐng)求進(jìn)行路由;高速緩存被頻繁訪問的數(shù)據(jù);對(duì)通信量進(jìn)行優(yōu)先級(jí)排序;以及控制服務(wù)的質(zhì)量。
[0043]從性能的角度來講,根據(jù)實(shí)施例,通信量引導(dǎo)器可以包括使得它能夠以低延遲處理大量通信量的架構(gòu)。例如,可以針對(duì)用于在高性能計(jì)算環(huán)境(諸如,例如Oracle ExalogicElastic Cloud)內(nèi)使用來對(duì)實(shí)施例進(jìn)行優(yōu)化,或者對(duì)實(shí)施例進(jìn)行優(yōu)化以與在使用高性能通信結(jié)構(gòu)(諸如,例如InfiniBand)的后端的源服務(wù)器進(jìn)行通信。根據(jù)實(shí)施例,為了支持高可用性,通信量引導(dǎo)器可以識(shí)別提供主動(dòng)-被動(dòng)或主動(dòng)-主動(dòng)故障轉(zhuǎn)移的通信量引導(dǎo)器實(shí)例的故障轉(zhuǎn)移組。當(dāng)?shù)骄W(wǎng)絡(luò)的通信量的量增加時(shí),可以通過重新配置通信量引導(dǎo)器與它可以將請(qǐng)求路由到其的附加的后端服務(wù)器、或者通過修改傳送通信量的速率,來縮放通信量引導(dǎo)器環(huán)境。
[0044]從管理的角度來講,根據(jù)實(shí)施例,通信量引導(dǎo)器被設(shè)計(jì)為容易安裝、配置和使用;并且可以包括用于供管理員在管理通信量引導(dǎo)器實(shí)例時(shí)使用的簡(jiǎn)單的、向?qū)?wizard)驅(qū)動(dòng)的圖形界面、以及魯棒的命令行接口。對(duì)于任何特定組織,根據(jù)他們的業(yè)務(wù)要求,可以改變通信量引導(dǎo)器拓?fù)鋪斫鉀Q他們的需要,所述業(yè)務(wù)要求諸如他們想使用通信量引導(dǎo)器來均衡對(duì)于其的請(qǐng)求的后端應(yīng)用程序的數(shù)量、他們的內(nèi)部要求(諸如安全性)、以及他們希望使用的通信量引導(dǎo)器特征。例如,簡(jiǎn)單的通信量引導(dǎo)器拓?fù)淇梢砸婚_始利用在專用計(jì)算機(jī)節(jié)點(diǎn)上運(yùn)行的、將客戶端請(qǐng)求分發(fā)給后端的服務(wù)器池的單個(gè)通信量引導(dǎo)器實(shí)例。為了避免單個(gè)故障點(diǎn),管理員可以配置在不同節(jié)點(diǎn)上運(yùn)行的、形成主動(dòng)-被動(dòng)故障轉(zhuǎn)移對(duì)的兩個(gè)同源通信量引導(dǎo)器實(shí)例。為了改進(jìn)資源利用率,管理員可以用兩個(gè)虛擬IP地址將這兩個(gè)通信量引導(dǎo)器實(shí)例配置為處于主動(dòng)-主動(dòng)模式。
[0045]術(shù)語表
[0046]根據(jù)實(shí)施例,本文中使用以下術(shù)語。將顯而易見的是,根據(jù)其他實(shí)施例,可以使用另外的和/或不同的術(shù)語。
[0047]配置:確定通信量引導(dǎo)器實(shí)例的運(yùn)行時(shí)行為的可配置元素的集合(例如,元數(shù)據(jù))。根據(jù)實(shí)施例,典型的配置包含對(duì)于通信量引導(dǎo)器應(yīng)在其上監(jiān)聽請(qǐng)求的監(jiān)聽器的定義(例如,IP地址和端口組合),以及關(guān)于應(yīng)向其發(fā)送這些請(qǐng)求的后端服務(wù)器的信息。通信量引導(dǎo)器可以在通信量引導(dǎo)器實(shí)例開始時(shí)以及處理客戶端請(qǐng)求時(shí)讀取配置。
[0048]實(shí)例(通信量引導(dǎo)器實(shí)例):從配置實(shí)例化的部署在管理節(jié)點(diǎn)或管理服務(wù)器上的通信量引導(dǎo)器服務(wù)器。
[0049]集群:從相同配置創(chuàng)建的兩個(gè)或更多通信量引導(dǎo)器實(shí)例的集合。
[0050]故障轉(zhuǎn)移組:根據(jù)虛擬IP地址(VIP)分組的兩個(gè)或更多通信量引導(dǎo)器實(shí)例。根據(jù)實(shí)施例,故障轉(zhuǎn)移組在主動(dòng)-被動(dòng)模式下提供高可用性;其中,請(qǐng)求在VIP處被接收并且被路由到被指定為主實(shí)例的實(shí)例;如果主實(shí)例不可到達(dá),則請(qǐng)求被路由到備用實(shí)例。根據(jù)實(shí)施例,對(duì)于主動(dòng)-被動(dòng)故障轉(zhuǎn)移,需要兩個(gè)故障轉(zhuǎn)移組,每個(gè)具有唯一的VIP,但是兩個(gè)都包括其中主要角色和備用角色相反的相同節(jié)點(diǎn);故障轉(zhuǎn)移組中的每個(gè)實(shí)例被指定為用于一個(gè)VIP的主實(shí)例以及用于另一 VIP的備用實(shí)例。
[0051 ] 管理服務(wù)器:托管接口的專門配置的通信量弓I導(dǎo)器實(shí)例,通過這些接口,管理員可以創(chuàng)建通信量引導(dǎo)器配置,將它們部署為管理節(jié)點(diǎn)上的實(shí)例,并管理這些實(shí)例,這些接口包括管理控制臺(tái)和命令行接口。
[0052]管理節(jié)點(diǎn):被指定為管理員可以在其上部署通信量引導(dǎo)器實(shí)例的主機(jī)的物理服務(wù)器。根據(jù)實(shí)施例,在給定節(jié)點(diǎn)上,管理員可以僅部署配置的一個(gè)實(shí)例。
[0053]INSTANCE_H0ME:管理服務(wù)器或管理節(jié)點(diǎn)上的管理員的選擇的目錄,關(guān)于通信量引導(dǎo)器實(shí)例的配置數(shù)據(jù)和二進(jìn)制文件被存儲(chǔ)在該目錄中。
[0054]0RACLE_H0ME:管理員的選擇的目錄,管理員將通信量引導(dǎo)器二進(jìn)制文件安裝在該目錄中。
[0055]管理控制臺(tái):管理服務(wù)器上的管理員可以使用其來創(chuàng)建、部署和管理通信量引導(dǎo)器實(shí)例的基于web的圖形界面。
[0056]客戶端:根據(jù)實(shí)施例,將請(qǐng)求(例如,HTTP和HTTPS請(qǐng)求)發(fā)送到通信量引導(dǎo)器實(shí)例的代理(例如,web瀏覽器或應(yīng)用程序)。可以與所述系統(tǒng)一起使用的客戶端的類型的例子包括計(jì)算機(jī)服務(wù)器、膝上型計(jì)算機(jī)、便攜式裝置(諸如智能電話)、以及其他類型的計(jì)算裝置,這些類型的客戶端中的一些可以包括例如用于訪問web服務(wù)器的web瀏覽器應(yīng)用程序。
[0057]源服務(wù)器:根據(jù)實(shí)施例,后端資源或服務(wù)器,通信量引導(dǎo)器將它從客戶端接收的請(qǐng)求轉(zhuǎn)發(fā)給該后端資源或服務(wù)器,并且它從該后端資源或服務(wù)器接收對(duì)于客戶端請(qǐng)求的響應(yīng)。可以用作源服務(wù)器的資源的類型的例子包括輕量目錄訪問協(xié)議(LDAP)服務(wù)器、web服務(wù)器、多媒體服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、以及其他類型的資源。
[0058]源服務(wù)器池:托管相同應(yīng)用程序或服務(wù)并且管理員可以通過使用通信量引導(dǎo)器對(duì)其進(jìn)行負(fù)載均衡的源服務(wù)器集合。根據(jù)實(shí)施例,通信量引導(dǎo)器基于被指定用于源服務(wù)器池的負(fù)載分發(fā)方法將客戶端請(qǐng)求分發(fā)給該池中的服務(wù)器。
[0059]虛擬服務(wù)器:提供唯一的IP地址(或主機(jī)名稱)和端口組合的通信量引導(dǎo)器服務(wù)器實(shí)例內(nèi)的虛擬實(shí)體,通過該虛擬實(shí)體,通信量引導(dǎo)器可以服務(wù)于對(duì)于一個(gè)或多個(gè)域的請(qǐng)求。根據(jù)實(shí)施例,節(jié)點(diǎn)上的通信量引導(dǎo)器實(shí)例可以包含多個(gè)虛擬服務(wù)器。管理員可以配置設(shè)置,諸如專用于每個(gè)虛擬服務(wù)器的最大傳入連接數(shù),并且還可以定制每個(gè)虛擬服務(wù)器如何處理請(qǐng)求。
[0060]圖1例示了根據(jù)實(shí)施例的包括負(fù)載均衡器或通信量引導(dǎo)器的計(jì)算環(huán)境。如圖1所示,根據(jù)實(shí)施例,通信量引導(dǎo)器100 (在本文中一些實(shí)施例中被稱為Oracle通信量引導(dǎo)器(OTD))可以部署在一個(gè)或多個(gè)物理計(jì)算機(jī)服務(wù)器101 (或包括處理器(CPU)、存儲(chǔ)器和儲(chǔ)存器的類似計(jì)算裝置)上,并且可以包括一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例102、104,這些通信量引導(dǎo)器實(shí)例繼而可以通過使用高可用性心跳或類似裝置106來彼此進(jìn)行通信。
[0061]對(duì)于任何特定組織,根據(jù)他們的業(yè)務(wù)要求,可以改變通信量引導(dǎo)器拓?fù)鋪斫鉀Q他們的需要,所述業(yè)務(wù)要求諸如他們想使用通信量引導(dǎo)器來均衡對(duì)于其的請(qǐng)求的后端應(yīng)用程序的數(shù)量、他們的內(nèi)部要求(諸如安全性)、以及他們希望使用的通信量引導(dǎo)器特征。后端可以包括一個(gè)或多個(gè)源服務(wù)器110,其例子可以包括LDAP服務(wù)器114、web服務(wù)器118、多媒體服務(wù)器122、應(yīng)用服務(wù)器126以及數(shù)據(jù)庫服務(wù)器128。根據(jù)實(shí)施例,應(yīng)用服務(wù)器可以是WebLogic服務(wù)器(WLS)。根據(jù)組織的特定需要,可以使用其他類型的源服務(wù)器和應(yīng)用服務(wù)器。每個(gè)源服務(wù)器可以經(jīng)由諸如以太網(wǎng)的內(nèi)部網(wǎng)絡(luò)130彼此進(jìn)行通信以及與通信量引導(dǎo)器進(jìn)行通信。
[0062]根據(jù)實(shí)施例,通信量引導(dǎo)器可以經(jīng)由外部網(wǎng)絡(luò)136、互聯(lián)網(wǎng)138、在許多組織的情況下還經(jīng)由防火墻139從客戶端134接收請(qǐng)求。可以與所述系統(tǒng)一起使用的客戶端的類型的例子包括計(jì)算機(jī)服務(wù)器、膝上型計(jì)算機(jī)、便攜式裝置(諸如智能電話)、以及其他類型的計(jì)算裝置,這些類型的客戶端中的一些可以包括例如用于訪問web服務(wù)器的web瀏覽器應(yīng)用程序。
[0063]圖2例示根據(jù)實(shí)施例的通信量引導(dǎo)器與一個(gè)或多個(gè)源服務(wù)器池的使用。在圖2中所示的例子中,通信量引導(dǎo)器與兩個(gè)池一起使用,這兩個(gè)池包括(第一)應(yīng)用服務(wù)器池170和(第二) web服務(wù)器池180,(第一)應(yīng)用服務(wù)器池170具有在這里被指示為A172、B174、C176、D178的四個(gè)應(yīng)用服務(wù)器,(第二)web服務(wù)器池180具有在這里被指示為A182、B184、C186的三個(gè)web服務(wù)器。根據(jù)其他實(shí)施例和例子,根據(jù)組織的特定需要,可以使用其他類型和數(shù)量的服務(wù)器池。
[0064]在圖2中所示的例子中,拓?fù)浒▋蓚€(gè)通信量引導(dǎo)器實(shí)例(102和104),這兩個(gè)通信量引導(dǎo)器實(shí)例形成主動(dòng)-被動(dòng)故障轉(zhuǎn)移組150,并且包括用于接收客戶端請(qǐng)求的單個(gè)虛擬IP地址190。當(dāng)主動(dòng)實(shí)例(在這個(gè)例子中,實(shí)例102)接收請(qǐng)求190、192、194時(shí),它確定應(yīng)向其發(fā)送該請(qǐng)求的服務(wù)器池,并基于被指定用于該池的負(fù)載分發(fā)方法將請(qǐng)求197、198轉(zhuǎn)發(fā)給該池中的服務(wù)器之一。
[0065]盡管圖2中所示的例子例示了后端的兩個(gè)服務(wù)器池的使用,但是管理員可以將通信量引導(dǎo)器配置為將請(qǐng)求路由到多個(gè)池中的服務(wù)器。在圖2中所示的主動(dòng)-被動(dòng)設(shè)置中,故障轉(zhuǎn)移組中的一個(gè)節(jié)點(diǎn)在任何時(shí)間點(diǎn)都是冗余的。根據(jù)實(shí)施例,為了改進(jìn)資源利用率,管理員可以用兩個(gè)虛擬IP地址將這兩個(gè)`通信量引導(dǎo)器實(shí)例配置為主動(dòng)-主動(dòng)模式;在這種情況下,每個(gè)實(shí)例滿足在一個(gè)虛擬IP地址上接收的請(qǐng)求,并作為另一實(shí)例的備用。
[0066]圖3例示根據(jù)實(shí)施例的通信量引導(dǎo)器架構(gòu)。根據(jù)實(shí)施例,通信量引導(dǎo)器可以包括使得它能夠以低延遲處理大量通信量的架構(gòu)。實(shí)施例還可以針對(duì)用于在高性能計(jì)算環(huán)境內(nèi)使用進(jìn)行優(yōu)化,或者還可以被優(yōu)化以通過使用高性能通信結(jié)構(gòu)與后端的源服務(wù)器進(jìn)行通?目。
[0067]如圖3中所示,根據(jù)實(shí)施例,通信量引導(dǎo)器可以包括一個(gè)或多個(gè)Netscape便攜式運(yùn)行時(shí)(NSPR) 202和網(wǎng)絡(luò)安全服務(wù)(NSS) 206層。根據(jù)實(shí)施例,通信量引導(dǎo)器還可以包括HTTP引擎210和反向代理組件230,HTTP引擎210具有一個(gè)或多個(gè)接入控制212、日志記錄214、HTTP壓縮216、I/O過濾器218、錯(cuò)誤處理220、速率整形222、入侵檢測(cè)224或其他組件,反向代理組件230具有一個(gè)或多個(gè)http客戶端232、響應(yīng)客戶端234、健康檢查236、路由策略238、負(fù)載控制240、負(fù)載均衡器244、WLS支持246、粘性路由248或其他組件。根據(jù)實(shí)施例,通信量引導(dǎo)器還可以包括HTTP連接處理程序250,其具有一個(gè)或多個(gè)接受器線程252、工作線程254、維繼線程256或其他組件。根據(jù)實(shí)施例,通信量引導(dǎo)器還可以包括TCP連接處理程序260,其具有一個(gè)或多個(gè)TCP線程262、負(fù)載均衡器264或其他組件。根據(jù)實(shí)施例,通信量引導(dǎo)器還可以包括一個(gè)或多個(gè)事件調(diào)度表270、動(dòng)態(tài)配置272、監(jiān)視274或其他組件。
[0068]將顯而易見的是,根據(jù)其他實(shí)施例,可以使用另外的和/或不同的組件。
[0069]圖4例示根據(jù)實(shí)施例的通信量引導(dǎo)器管理環(huán)境和接口。從管理的角度來講,通信量引導(dǎo)器被設(shè)計(jì)為容易安裝、配置和使用;并且可以包括用于供管理員在管理通信量引導(dǎo)器實(shí)例時(shí)使用的簡(jiǎn)單的、向?qū)?qū)動(dòng)的圖形界面、以及魯棒的命令行接口。如圖4中所示,根據(jù)實(shí)施例,通信量引導(dǎo)器可以包括一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例280、281、282,其中,這些實(shí)例中的至少一個(gè)被指定為管理服務(wù)器(280),而其他實(shí)例則被指定為管理節(jié)點(diǎn)(281、282)。
[0070]根據(jù)實(shí)施例,管理環(huán)境284包括使得管理員290能夠配置或以其他方式管理292通信量引導(dǎo)器或其實(shí)例294、296的管理接口 285,管理接口 285又包括管理控制臺(tái)(⑶I)286和/或命令行接口 288中的一個(gè)或多個(gè)。
[0071]主動(dòng)-被動(dòng)路由
[0072]在一些主動(dòng)/被動(dòng)路由方法中,負(fù)載均衡器保持第一服務(wù)器集群作為主(B卩,主動(dòng))集群、另一服務(wù)器集群作為備用(即,被動(dòng))集群。這對(duì)于災(zāi)難恢復(fù)情況是有用的,由此,當(dāng)主數(shù)據(jù)中心發(fā)生故障時(shí),自動(dòng)地將通信量路由到備用數(shù)據(jù)中心。根據(jù)實(shí)施例,通信量引導(dǎo)器采取具有細(xì)微差別的方法,通過該方法,通信量引導(dǎo)器僅在所有主動(dòng)節(jié)點(diǎn)都發(fā)生故障之后才挑選備用節(jié)點(diǎn)。
[0073]根據(jù)實(shí)施例,在服務(wù)器池內(nèi),源服務(wù)器中的一些可以被指定為主服務(wù)器,而其他則被指定為備用服務(wù)器。如果至少一個(gè)主服務(wù)器是可用的,則通信量引導(dǎo)器將僅將請(qǐng)求路由到非備用服務(wù)器(即,主服務(wù)器)。然而,如果主服務(wù)器均不可用,則通信量引導(dǎo)器將將請(qǐng)求路由到池中的備用服務(wù)器。一旦任何主服務(wù)器再次變得可用,通信量引導(dǎo)器就將停止將請(qǐng)求發(fā)送到備用服務(wù)器,并且將將后面的請(qǐng)求路由到主服務(wù)器。
[0074]圖5例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的主動(dòng)/被動(dòng)路由的使用。如圖5中所示,主動(dòng)/被動(dòng)環(huán)境可以包括在將請(qǐng)求路由到源服務(wù)器346時(shí)使用的通信量引導(dǎo)器340,其具有一個(gè)或多個(gè)通信量弓I導(dǎo)器實(shí)例342。源服務(wù)器可以被配置為一個(gè)或多個(gè)服務(wù)器池(這里被示為池A348和池B354),每個(gè)池具有一個(gè)或多個(gè)主服務(wù)器350、357以及一個(gè)或多個(gè)備用服務(wù)器356、358。
[0075]如圖5中所示,通信量引導(dǎo)器可以被配置為:對(duì)于任何特定池(例如,池A),最初,如果在該池中至少一個(gè)主服務(wù)器是可用的,則通信量引導(dǎo)器將僅將請(qǐng)求344路由到非備用服務(wù)器(即,主服務(wù)器),并且將不將請(qǐng)求路由到備用服務(wù)器(這里為了例示將備用服務(wù)器加上了陰影)。
[0076]根據(jù)實(shí)施例,在一時(shí)間段之后,盡管一個(gè)或多個(gè)主服務(wù)器可能由于故障而變得不可用,但是如果至少一個(gè)主服務(wù)器是可用的,則通信量引導(dǎo)器將繼續(xù)僅將請(qǐng)求路由360到該池中的主服務(wù)器。
[0077]在另一時(shí)間段之后,根據(jù)實(shí)施例,如果池中的所有主服務(wù)器都變得不可用,則通信量引導(dǎo)器將改為將請(qǐng)求路由364到池中的備用服務(wù)器。
[0078]圖6進(jìn)一步例示根據(jù)實(shí)施例的通信量引導(dǎo)器中的主動(dòng)/被動(dòng)路由的使用。如圖6中所示,如果池中的所有主服務(wù)器都仍不可用,則通信量引導(dǎo)器將繼續(xù)將請(qǐng)求路由366到池中的備用服務(wù)器。
[0079]當(dāng)主服務(wù)器再次可用時(shí),根據(jù)配置,通信量服務(wù)器可以在開始將通信量轉(zhuǎn)發(fā)給(新的或現(xiàn)在可用的)主服務(wù)器之前延遲一時(shí)間段。在這種情況下,通信量引導(dǎo)器將繼續(xù)370在一時(shí)間段內(nèi)將請(qǐng)求路由到備用服務(wù)器,并且仍還不將請(qǐng)求路由到主服務(wù)器(這里為了例示將主服務(wù)器加上了陰影)。
[0080]隨后,一旦至少一個(gè)主服務(wù)器再次完全可用,如果至少一個(gè)主服務(wù)器是可用的,則通信量引導(dǎo)器將再次僅將請(qǐng)求路由374到非備用服務(wù)器(即,主服務(wù)器),并且將不把請(qǐng)求路由到備用服務(wù)器。
[0081]根據(jù)實(shí)施例,在配置粘性路由的情況下,如果主服務(wù)器變得不可用,則粘到該服務(wù)器的所有后面的請(qǐng)求將不被拒絕,但是將被路由到其他主服務(wù)器,或者如果主服務(wù)器均不可用,則將被路由到備用服務(wù)器。因?yàn)檗D(zhuǎn)變?cè)捶?wù)器可能不具有針對(duì)粘性請(qǐng)求存儲(chǔ)的會(huì)話信息,所以這些會(huì)話在這種情況下將可能失敗。然而,新的服務(wù)服務(wù)器可以質(zhì)詢發(fā)送方,并為這些粘性請(qǐng)求建立新的會(huì)話。僅當(dāng)所有主服務(wù)器都不可用時(shí),才將備用服務(wù)器用于路由。
[0082]根據(jù)實(shí)施例,為了配置用于與通信量引導(dǎo)器一起使用的主動(dòng)/被動(dòng)路由,可以在用于指定備用服務(wù)器的server, xml文件中的元素〈origin_server>中添加被稱為“backup-server”的元素,分別在表1和列表1中提供了該元素的參數(shù)和例子。
[0083]
【權(quán)利要求】
1.一種用于在包括通信量引導(dǎo)器組件的計(jì)算環(huán)境中使用的系統(tǒng),包括: 具有一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例的通信量引導(dǎo)器,配置為從客戶端接收請(qǐng)求并且將請(qǐng)求傳送給具有一個(gè)或多個(gè)服務(wù)器池的源服務(wù)器; 健康檢查子系統(tǒng)和配置,其中,所述配置提供關(guān)于通信量引導(dǎo)器實(shí)例的各種元素的信息,所述各種元素包括源服務(wù)器;且 其中,所述健康檢查子系統(tǒng)周期性地檢查其配置的資源服務(wù)器的健康,并且通過將請(qǐng)求發(fā)送給所述池內(nèi)配置為源服務(wù)器的任何新的服務(wù)器實(shí)例、接收適當(dāng)?shù)捻憫?yīng)以及相應(yīng)地更新配置,來嘗試檢測(cè)所述一個(gè)或多個(gè)池中的變化。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述健康檢查請(qǐng)求是HTTP健康檢查請(qǐng)求。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,如果源服務(wù)器的響應(yīng)表明所述服務(wù)器屬于一集群,則其響應(yīng)將包括所述集群中的受管理服務(wù)器的列表。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述更新的配置包括動(dòng)態(tài)發(fā)現(xiàn)的源服務(wù)器繼承對(duì)所配置的資源服務(wù)器指定的屬性。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所配置的資源服務(wù)器和源服務(wù)器中的一個(gè)或多個(gè)是WebLogic服務(wù)器,并且其中,每個(gè)WebLogic服務(wù)器實(shí)例能響應(yīng)于健康檢查請(qǐng)求而提供WebLogic特定的響應(yīng)標(biāo)頭。
6.一種用于在包括通信量引導(dǎo)器組件的計(jì)算環(huán)境中使用的方法,包括以下步驟: 提供具有一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例的通信量引導(dǎo)器,所述通信量引導(dǎo)器被配置為從客戶端接收請(qǐng)求并且將請(qǐng)求傳送給具有一個(gè)或多個(gè)服務(wù)器池的源服務(wù)器; 提供健康檢查子系統(tǒng)和配置,其中`,所述配置提供關(guān)于通信量引導(dǎo)器實(shí)例的各種元素的信息,所述各種元素包括源服務(wù)器;且 其中,所述健康檢查子系統(tǒng)周期性地檢查其配置的資源服務(wù)器的健康,并且通過將請(qǐng)求發(fā)送給所述池內(nèi)被配置為源服務(wù)器的任何新的服務(wù)器實(shí)例、接收適當(dāng)?shù)捻憫?yīng)以及相應(yīng)地更新配置,來嘗試檢測(cè)所述一個(gè)或多個(gè)池中的變化。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述健康檢查請(qǐng)求是HTTP健康檢查請(qǐng)求。
8.根據(jù)權(quán)利要求6所述的方法,其中,如果源服務(wù)器的響應(yīng)表明所述服務(wù)器屬于一集群,則其響應(yīng)將包括所述集群中的受管理服務(wù)器的列表。
9.根據(jù)權(quán)利要求6所述的方法,其中,所述更新的配置包括動(dòng)態(tài)發(fā)現(xiàn)的源服務(wù)器繼承對(duì)所配置的資源服務(wù)器指定的屬性。
10.根據(jù)權(quán)利要求6所述的方法,其中,所配置的資源服務(wù)器和源服務(wù)器中的一個(gè)或多個(gè)是WebLogic服務(wù)器,并且其中,每個(gè)WebLogic服務(wù)器實(shí)例能響應(yīng)于健康檢查請(qǐng)求來提供WebLogic特定的響應(yīng)標(biāo)頭。
11.一種包括存儲(chǔ)在其上的指令的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),所述指令在被一個(gè)或多個(gè)計(jì)算機(jī)讀取并執(zhí)行時(shí)使所述一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行以下步驟: 提供具有一個(gè)或多個(gè)通信量引導(dǎo)器實(shí)例的通信量引導(dǎo)器,所述通信量引導(dǎo)器被配置為從客戶端接收請(qǐng)求并且將請(qǐng)求傳送給具有一個(gè)或多個(gè)服務(wù)器池的源服務(wù)器; 提供健康檢查子系統(tǒng)和配置,其中,所述配置提供關(guān)于通信量引導(dǎo)器實(shí)例的各種元素的信息,所述各種元素包括源服務(wù)器;且 其中,所述健康檢查子系統(tǒng)周期性地檢查其配置的資源服務(wù)器的健康,并且通過將請(qǐng)求發(fā)送給所述池內(nèi)被配置為源服務(wù)器的任何新的服務(wù)器實(shí)例、接收適當(dāng)?shù)捻憫?yīng)以及相應(yīng)地更新配置,來嘗試檢測(cè)所述·一個(gè)或多個(gè)池中的變化。
【文檔編號(hào)】G06F11/30GK103858157SQ201280047085
【公開日】2014年6月11日 申請(qǐng)日期:2012年9月26日 優(yōu)先權(quán)日:2011年9月27日
【發(fā)明者】A·斯瑞尼瓦桑, S·納塔拉簡(jiǎn) 申請(qǐng)人:甲骨文國(guó)際公司