两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

單一數(shù)據(jù)源的軟負(fù)載均衡方法和裝置制造方法

文檔序號:7997216閱讀:442來源:國知局
單一數(shù)據(jù)源的軟負(fù)載均衡方法和裝置制造方法
【專利摘要】本申請涉及一種單一數(shù)據(jù)源的軟負(fù)載均衡的方法和裝置。該方法包括:觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置;依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求;根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù);根據(jù)所述數(shù)據(jù)庫連接任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。本申請對數(shù)據(jù)庫請求進行優(yōu)先級劃分,單一數(shù)據(jù)源通過數(shù)據(jù)源代理而自動識別數(shù)據(jù)庫請求的優(yōu)先級,并按照請求的優(yōu)先級建立數(shù)據(jù)連接,從而在數(shù)據(jù)源側(cè)形成一種負(fù)載均衡策略,優(yōu)化了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了網(wǎng)絡(luò)的可用性。
【專利說明】單一數(shù)據(jù)源的軟負(fù)載均衡方法和裝置

【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種單一數(shù)據(jù)源的軟負(fù)載均衡方法和裝置。

【背景技術(shù)】
[0002]在訪問數(shù)據(jù)庫時,需要以數(shù)據(jù)源為中間媒質(zhì),與數(shù)據(jù)庫建立連接,在數(shù)據(jù)源中通常包含用于建立數(shù)據(jù)連接的信息,如:數(shù)據(jù)庫名稱、和服務(wù)器通訊使用的網(wǎng)絡(luò)協(xié)議名稱、數(shù)據(jù)庫使用的端口等等。
[0003]數(shù)據(jù)源不具備識別數(shù)據(jù)庫請求優(yōu)先級的功能,即已有數(shù)據(jù)源無法對sql請求進行優(yōu)先級區(qū)分,所以數(shù)據(jù)庫連接的建立只能根據(jù)請求時刻進行分配,并按照請求時刻順序建立數(shù)據(jù)連接,即數(shù)據(jù)源對所有的數(shù)據(jù)庫請求只能根據(jù)請求的時間來獲取數(shù)據(jù)庫連接。再者,目前的線上系統(tǒng)的業(yè)務(wù),其對應(yīng)的功能通常包括重要業(yè)務(wù)功能和非重要業(yè)務(wù)功能,這樣,如果是單一數(shù)據(jù)源、以及在高并發(fā)的情況下,非重要的業(yè)務(wù)功能等都會去競爭數(shù)據(jù)庫的連接,將導(dǎo)致數(shù)據(jù)庫連接不夠用進而會導(dǎo)致重要業(yè)務(wù)功能無法使用。
[0004]也就是說,如果在訪問量和數(shù)據(jù)流量快速增長時,尤其在單一數(shù)據(jù)源和高并發(fā)訪問的情況下,就目前已有數(shù)據(jù)源無法識別數(shù)據(jù)庫請求的優(yōu)先級,數(shù)據(jù)庫連接的分配方案為先到先得,一旦高并發(fā),很可能一些重要業(yè)務(wù)功能的數(shù)據(jù)庫請求在數(shù)據(jù)源配置最大超時策略方案下就無法獲得數(shù)據(jù)庫連接,數(shù)據(jù)庫數(shù)據(jù)連接會產(chǎn)生瓶頸,甚至?xí)?dǎo)致最終重要業(yè)務(wù)功能無法獲得數(shù)據(jù)連接進行處理的情況發(fā)生,整個用戶請求因為無法獲取數(shù)據(jù)庫連接而不可用,即整個功能都在高并發(fā)時期處于不可用狀態(tài)。
[0005]但若為單個數(shù)據(jù)庫配置多個數(shù)據(jù)源,則會因為多個數(shù)據(jù)源之間的數(shù)據(jù)連接不可以公用,出現(xiàn)多個數(shù)據(jù)源的資源不能統(tǒng)一協(xié)調(diào)的現(xiàn)象,而且多個數(shù)據(jù)源分別都包含數(shù)據(jù)連接的獲取、釋放等、以及超時終結(jié)中斷空閑連接也都給予各自不同的數(shù)據(jù)源配置,這樣,增加了數(shù)據(jù)庫連接的管理方案復(fù)雜性。再者,單臺服務(wù)器配置多個數(shù)據(jù)源的效果也無法達到多臺服務(wù)器的(每臺服務(wù)器配置一個數(shù)據(jù)源,數(shù)據(jù)源配置相同,高并發(fā)情況下通過一些負(fù)載均衡(F5硬負(fù)載均衡,apache或者nginx軟負(fù)載均衡通過對http請求的分流最終間接地減輕高并發(fā)情況下數(shù)據(jù)源的壓力))效果。
[0006]而負(fù)載均衡技術(shù)具有如下特點:可以做ISO模型4-7層負(fù)載均衡,具有負(fù)載均衡、應(yīng)用交換、會話交換、狀態(tài)監(jiān)控、智能HTTP壓縮、TCP優(yōu)化、第7層速率整形、內(nèi)容緩沖、內(nèi)容轉(zhuǎn)換、連接加速、高速緩存、Cookie加密、防火墻一包過濾、包消毒等功能。利用負(fù)載均衡技術(shù),可以將大量的并發(fā)訪問或數(shù)據(jù)流量分配給多個數(shù)據(jù)庫,減少用戶等待響應(yīng)的時間,提高系統(tǒng)處理能力,采用負(fù)載均衡的方法,較上述為單個數(shù)據(jù)庫配置多個數(shù)據(jù)源的方法可以減輕高并發(fā)訪問帶來的數(shù)據(jù)源壓力。
[0007]但在現(xiàn)有技術(shù)中,針對高并發(fā)系統(tǒng)的負(fù)載均衡技術(shù)主要有三種,均存在各種缺陷:
[0008]1、在數(shù)據(jù)庫連接允許的情況下,配置多個數(shù)據(jù)源,對于低優(yōu)先級的功能采用獨立的數(shù)據(jù)源,高優(yōu)先級的功能采用其他的數(shù)據(jù)源,避免相互競爭。但是配置多個數(shù)據(jù)源較為復(fù)雜,而且會導(dǎo)致業(yè)務(wù)功能依賴多個數(shù)據(jù)源,代碼復(fù)雜度高度,并且數(shù)據(jù)源之間高度耦合,不滿足軟件解耦和內(nèi)聚的特性。其次多個數(shù)據(jù)源之間的連接無法公用。
[0009]2、添加數(shù)據(jù)庫節(jié)點,提高數(shù)據(jù)庫總的連接數(shù),然后修改數(shù)據(jù)源配置提高最大連接數(shù)配置,添加數(shù)據(jù)庫節(jié)點,也會增加管理員的管理復(fù)雜度,而且在不是優(yōu)先考慮穩(wěn)定性的前提下代價相對較高。
[0010]3、在數(shù)據(jù)庫連接支持情況下,添加應(yīng)用服務(wù)器,通過業(yè)內(nèi)通用的負(fù)載均衡策略間接降低數(shù)據(jù)源的壓力,但是缺點成本高昂。


【發(fā)明內(nèi)容】

[0011]基于上述已有針對數(shù)據(jù)庫連接的負(fù)載均衡技術(shù)的缺陷,本申請的主要目的在于提供一種單一數(shù)據(jù)源的軟負(fù)載均衡的方法和裝置,以解決在發(fā)生大量并發(fā)的數(shù)據(jù)庫訪問時出現(xiàn)的數(shù)據(jù)流量瓶頸的問題。
[0012]為了解決上述技術(shù)問題,本申請?zhí)峁┝艘环N單一數(shù)據(jù)源的軟負(fù)載均衡的方法,包括以下步驟:觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置;依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求;根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù);根據(jù)所述數(shù)據(jù)庫連接任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。
[0013]其中,所述依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求,包括:對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果,生成對應(yīng)所述數(shù)據(jù)庫請求的數(shù)據(jù)庫連接請求,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求。
[0014]其中,在根據(jù)本申請所述的方法中,所述數(shù)據(jù)庫配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級;所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級。
[0015]其中,所述根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù),包括:基于數(shù)據(jù)源的最大數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量;計算當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
[0016]其中,所述根據(jù)所述數(shù)據(jù)庫連接任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接還包括:調(diào)度所述數(shù)據(jù)庫連接任務(wù),通過調(diào)用數(shù)據(jù)源建立數(shù)據(jù)庫連接。
[0017]本申請還提供了一種單一數(shù)據(jù)源的軟負(fù)載均衡的裝置,包括:數(shù)據(jù)庫配置資源模塊,用于觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置;數(shù)據(jù)庫請求配置解析器,用于依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求;連接請求容器,用于根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù);連接調(diào)度模塊,用于根據(jù)所述數(shù)據(jù)庫連接的任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。
[0018]其中,所述數(shù)據(jù)庫請求配置解析器還包括:對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果,生成對應(yīng)所述數(shù)據(jù)庫請求的數(shù)據(jù)庫連接請求,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求。
[0019]其中,在根據(jù)本申請所述的裝置中,所述數(shù)據(jù)庫配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級;所述數(shù)據(jù)庫請求配置解析器還包括:所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級。
[0020]其中,所述連接請求容器還可以包括:基于數(shù)據(jù)源的最大數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量;計算當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
[0021]其中,在根據(jù)本申請所述的裝置中,還可以包括:數(shù)據(jù)源模塊,用于基于調(diào)度數(shù)據(jù)庫連接任務(wù),通過調(diào)用數(shù)據(jù)源建立數(shù)據(jù)庫連接。
[0022]為解決上述技術(shù)問題,本申請?zhí)峁┑膯我粩?shù)據(jù)源的軟負(fù)載均衡的方法和裝置,與現(xiàn)有技術(shù)相比,根據(jù)本申請的技術(shù)方案具有以下優(yōu)點:對數(shù)據(jù)庫請求進行優(yōu)先級劃分,單一數(shù)據(jù)源通過數(shù)據(jù)源代理而自動識別數(shù)據(jù)庫請求的優(yōu)先級,并按照請求的優(yōu)先級建立數(shù)據(jù)連接,從而在數(shù)據(jù)源側(cè)形成一種單一數(shù)據(jù)源的軟負(fù)載均衡策略,優(yōu)化了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了網(wǎng)絡(luò)的可用性。

【專利附圖】

【附圖說明】
[0023]此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0024]圖1是本申請實施例的單一數(shù)據(jù)源的軟負(fù)載均衡的裝置的方框圖;
[0025]圖2是本申請實施例的單一數(shù)據(jù)源的軟負(fù)載均衡的方法的流程圖;
[0026]圖3是本申請實施例的單一數(shù)據(jù)源的軟負(fù)載均衡的方法中一數(shù)據(jù)庫連接請求生成流程圖;
[0027]圖4是本申請實施例的單一數(shù)據(jù)源的軟負(fù)載均衡的方法中一連接任務(wù)建立流程圖。

【具體實施方式】
[0028]本申請的主要思想在于,通過標(biāo)識數(shù)據(jù)庫配置文件中數(shù)據(jù)庫請求的優(yōu)先級,通過數(shù)據(jù)源代理以結(jié)合數(shù)據(jù)庫當(dāng)前的負(fù)載和數(shù)據(jù)庫請求的優(yōu)先級進行處理。
[0029]首先,數(shù)據(jù)源配置可以采用原有數(shù)據(jù)源的配置,例如單一數(shù)據(jù)源的原有配置,不做變動,因而簡單有效不增加配置負(fù)擔(dān)和運算管理等復(fù)雜度。
[0030]其次,不需要增加服務(wù)器或者數(shù)據(jù)庫節(jié)點,只是一種在軟件端的負(fù)載均衡策略,因而簡單且成本低。
[0031]另外,對于數(shù)據(jù)庫的管理全部托管到數(shù)據(jù)源代理上,沒有將數(shù)據(jù)源分散至系統(tǒng)的各個部分,滿足軟件的內(nèi)聚和解耦。
[0032]為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,以下結(jié)合附圖及具體實施例,對本申請作進一步地詳細(xì)說明。
[0033]參見圖1,根據(jù)本申請的方案,提供了一種單一數(shù)據(jù)源的軟負(fù)載均衡的裝置100,圖1為本申請裝置的結(jié)構(gòu)示意的方框圖。
[0034]該裝置100:包括數(shù)據(jù)庫配置資源模塊(SqlConfigResouce) 103 (這里,數(shù)據(jù)庫配置資源為Sql配置資源);數(shù)據(jù)源代理模塊(DataSourceP1xy) 105,又稱核心部分;數(shù)據(jù)源模塊(DataSource) 107。
[0035]數(shù)據(jù)庫配置資源模塊103,主要用來存儲數(shù)據(jù)庫的配置資源,包括數(shù)據(jù)庫請求配置(Sql請求配置,包含數(shù)據(jù)庫請求的優(yōu)先級),延遲時間,備份策略等。當(dāng)接收到來自用戶的數(shù)據(jù)庫訪問請求時,該數(shù)據(jù)庫訪問請求觸發(fā)數(shù)據(jù)庫請求,該數(shù)據(jù)庫請求可以定位數(shù)據(jù)庫請求配置,即,數(shù)據(jù)庫配置資源模塊103觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置。
[0036]DataSourceProxy 核心部分 105,包括:數(shù)據(jù)庫配置解析器(SqlConfigResource)1051、連接請求容器(Connect1nRequestContainer) 1053、連接調(diào)度模塊(Connect1nDispatch) 1055。
[0037]其中,數(shù)據(jù)庫配置解析器1051主要用于對數(shù)據(jù)庫配置資源的解析。當(dāng)定位數(shù)據(jù)庫請求配置后,依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求。對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果可以生成對應(yīng)該數(shù)據(jù)庫請求(即對應(yīng)相應(yīng)的數(shù)據(jù)庫訪問請求)的數(shù)據(jù)庫連接請求,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求,如,發(fā)送至連接請求容器1053。由于所述數(shù)據(jù)庫請求配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級,所以,所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級。
[0038]連接請求容器1053主要用于包裝數(shù)據(jù)庫連接,所有的數(shù)據(jù)庫連接請求都會經(jīng)過該連接請求容器1053。該連接請求容器1053中包含了目前數(shù)據(jù)源的負(fù)載情況,所以,連接請求容器1053,可以根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù)。例如:計算新接收的數(shù)據(jù)庫連接請求量、在處理的數(shù)據(jù)庫連接請求量和待處理的數(shù)據(jù)庫連接請求量。通過該連接請求容器1053攔截數(shù)據(jù)庫連接請求,從而根據(jù)請求的優(yōu)先級和調(diào)度策略,結(jié)合負(fù)載情況,進而向連接調(diào)度模塊1055創(chuàng)建一個數(shù)據(jù)庫連接任務(wù)。
[0039]這里,負(fù)載均衡的執(zhí)行策略可以看作,基于數(shù)據(jù)源的數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量;計算當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
[0040]連接調(diào)度模塊1055,包括決定連接的調(diào)度策略,判斷是否真正獲取數(shù)據(jù)庫連接、或者是延遲獲取、或者是先記錄再激活,以及根據(jù)所述數(shù)據(jù)庫連接的任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。
[0041]數(shù)據(jù)源模塊(DataSource) 107,即數(shù)據(jù)源,主要用來封裝目前已有的數(shù)據(jù)源,例如:dbcp, c3p0。其是DataSourceProxy核心部分(數(shù)據(jù)源代理)105與外部數(shù)據(jù)源的協(xié)議層或者契約層,在此基礎(chǔ)上,數(shù)據(jù)源模塊107基于調(diào)度數(shù)據(jù)庫連接任務(wù),通過調(diào)用數(shù)據(jù)源建立數(shù)據(jù)庫連接。
[0042]各個模塊之間相互關(guān)聯(lián),實現(xiàn)其負(fù)載均衡。
[0043]結(jié)合裝置各個模塊,基于下面的單一數(shù)據(jù)源的軟負(fù)載均衡的具體實施步驟,描述單一數(shù)據(jù)源的軟負(fù)載均衡的方法和裝置各個模塊功能的實現(xiàn)。
[0044]根據(jù)本申請的方案,提供了相應(yīng)的于上述裝置的一種單一數(shù)據(jù)源的軟負(fù)載均衡的方法,優(yōu)選的,具體實施流程參見圖2所示。當(dāng)用戶需要訪問數(shù)據(jù)庫時,用戶會發(fā)起一個請求,即發(fā)出一個數(shù)據(jù)庫訪問請求。而后,則會根據(jù)接收的數(shù)據(jù)庫訪問請求,定位到數(shù)據(jù)庫請求配置,并解析數(shù)據(jù)庫請求配置,發(fā)起一個連接請求,最終創(chuàng)建一個數(shù)據(jù)庫連接任務(wù),通過連接調(diào)度策略(如:利用連接調(diào)度模塊1055)將所述數(shù)據(jù)庫連接任務(wù)分發(fā)到具體的數(shù)據(jù)庫連接隊列中,最終通過數(shù)據(jù)源獲取到數(shù)據(jù)庫連接。具體可參見以下優(yōu)選實施步驟舉例。
[0045]在步驟S202,用戶可以通過終端使用互聯(lián)網(wǎng),并且在終端使用搜索、查詢、瀏覽等功能時,會進行數(shù)據(jù)庫訪問,用于獲取有用數(shù)據(jù)。用戶互聯(lián)網(wǎng)數(shù)據(jù)庫訪問發(fā)起sql請求時,通常,在這種情況下,若存在大量的用戶互聯(lián)網(wǎng)訪問,則會出現(xiàn)高并發(fā)數(shù)據(jù)訪問,這些數(shù)據(jù)庫訪問需要的數(shù)據(jù)庫連接量往往遠(yuǎn)遠(yuǎn)大于系統(tǒng)處理性能所能支持的最大數(shù)據(jù)庫連接量,導(dǎo)致在特定時間內(nèi),不能獲得有效的數(shù)據(jù)庫連接,在系統(tǒng)中產(chǎn)生網(wǎng)絡(luò)擁堵。
[0046]在進行數(shù)據(jù)庫訪問時,數(shù)據(jù)庫所在服務(wù)器端(下稱數(shù)據(jù)庫服務(wù)器)會接收到用戶自終端傳送來的數(shù)據(jù)庫訪問請求,并定位數(shù)據(jù)庫請求配置。服務(wù)器端將基于該數(shù)據(jù)庫訪問請求進行數(shù)據(jù)庫連接以獲得用戶需要的數(shù)據(jù)。如,在步驟S204處,數(shù)據(jù)庫服務(wù)器接收到用戶自終端發(fā)來的數(shù)據(jù)庫訪問請求,該數(shù)據(jù)庫訪問請求觸發(fā)數(shù)據(jù)庫請求(Sql請求)。
[0047]步驟S206,接收數(shù)據(jù)庫請求并定位Sql配置資源(即定位數(shù)據(jù)庫請求配置)。例如,在單一數(shù)據(jù)源的軟負(fù)載均衡的裝置100接收到數(shù)據(jù)庫訪問請求,根據(jù)與該數(shù)據(jù)庫訪問請求觸發(fā)相對應(yīng)的數(shù)據(jù)庫請求,定位到數(shù)據(jù)庫請求配置(如Sql配置資源/數(shù)據(jù)庫配置資源)。該裝置100的數(shù)據(jù)庫配置資源模塊103,存儲有數(shù)據(jù)庫請求配置,包括數(shù)據(jù)庫請求的優(yōu)先級,延遲時間,備份策略等。在數(shù)據(jù)庫配置資源(數(shù)據(jù)庫請求配置)中通常還會定義數(shù)據(jù)庫名稱、服務(wù)器端口、連接、緩存、臨時表、會話內(nèi)存、日志等數(shù)據(jù)。
[0048]步驟S202-S206,實現(xiàn)觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置(如單一數(shù)據(jù)源的軟負(fù)載均衡的裝置100及其數(shù)據(jù)庫配置資源模塊103的功能),為數(shù)據(jù)庫解析提供基礎(chǔ)。
[0049]步驟S208,依據(jù)定位數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求(如:發(fā)送數(shù)據(jù)庫連接請求)。
[0050]例如,在該裝置100的(核心部分105)數(shù)據(jù)庫配置解析器1051,數(shù)據(jù)庫配置資源模塊103的數(shù)據(jù)庫配置資源存儲有數(shù)據(jù)庫請求配置,依據(jù)該數(shù)據(jù)庫請求配置對數(shù)據(jù)庫訪問請求(數(shù)據(jù)庫請求)進行數(shù)據(jù)庫配置解析處理,如圖3步驟S301 ;接著,對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果,生成對應(yīng)所述數(shù)據(jù)庫請求的數(shù)據(jù)庫連接請求,該數(shù)據(jù)庫連接請求的生成基于該數(shù)據(jù)庫請求的配置(如其優(yōu)先級等),即,生成具有相應(yīng)優(yōu)先級的數(shù)據(jù)庫連接請求,其中,進一步地,可以對該數(shù)據(jù)庫連接請求通過一配置形式,標(biāo)識優(yōu)先級和執(zhí)行策略方案(如記錄或首先處理等),即對當(dāng)前數(shù)據(jù)庫連接請求進行負(fù)載均衡計算,如圖3步驟S303 ;再提交該數(shù)據(jù)庫連接請求,以發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求,例如向該裝置100的連接請求容器1053發(fā)送/傳送該連接請求,如圖3步驟S305。這里,解析數(shù)據(jù)庫請求(具體如:解析數(shù)據(jù)庫請求配置/Sql配置資源等),是為后續(xù)實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)連接操作做準(zhǔn)備。
[0051]而在解析時,數(shù)據(jù)庫配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級,則其通過配置方式標(biāo)識數(shù)據(jù)庫請求的優(yōu)先級和執(zhí)行方案,這樣,在生成數(shù)據(jù)庫連接請求(即生成連接對象)時,所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級,其依據(jù)該優(yōu)先級別可辨識可區(qū)別。若利用該數(shù)據(jù)庫連接請求去獲取數(shù)據(jù)庫連接,則能實現(xiàn)更有效的數(shù)據(jù)庫訪問提升網(wǎng)絡(luò)數(shù)據(jù)處理性能。而后通過該具有優(yōu)先級標(biāo)識的數(shù)據(jù)庫連接請求去創(chuàng)建一個數(shù)據(jù)連接任務(wù),建立數(shù)據(jù)庫的數(shù)據(jù)連接,并將終端所需的數(shù)據(jù)返回給該終端,從而完成對用戶請求的響應(yīng)(這在后面將具體描述)。
[0052]一般,每一個數(shù)據(jù)庫連接請求都涉及到用戶方經(jīng)終端發(fā)送的請求相對應(yīng)的一業(yè)務(wù)功能,以達到用戶操作的預(yù)期目的,例如:監(jiān)控、統(tǒng)計、查詢等。這些業(yè)務(wù)功能重要性不同,比如查詢請求所對應(yīng)的業(yè)務(wù)功能的重要性高,而監(jiān)控請求所對應(yīng)的業(yè)務(wù)功能的重要性低,以此可以劃分優(yōu)先級別,比如,重要的可劃入高優(yōu)先級,非重要的可劃入低優(yōu)先級。
[0053]依據(jù)本申請的方案,優(yōu)選地,在數(shù)據(jù)庫配置資源模塊103的數(shù)據(jù)庫配置資源中,其存儲的數(shù)據(jù)庫請求的配置,是將數(shù)據(jù)庫請求的優(yōu)先級寫在數(shù)據(jù)庫請求的配置中,對這些數(shù)據(jù)庫請求(及生成的數(shù)據(jù)庫連接請求)相應(yīng)的業(yè)務(wù)功能都進行分級管理,從而使用優(yōu)先級的概念來區(qū)分何種功能重要,何種功能不重要。
[0054]當(dāng)生成數(shù)據(jù)庫連接請求時,由于該數(shù)據(jù)庫連接請求中包含的優(yōu)先級標(biāo)識,可以判斷出該數(shù)據(jù)庫連接請求所處的優(yōu)先級。一旦確定所述數(shù)據(jù)庫連接請求的優(yōu)先級,就可以結(jié)合當(dāng)前負(fù)載情況進行負(fù)載均衡計算,按照每一個數(shù)據(jù)庫連接請求所屬的優(yōu)先級對大量的數(shù)據(jù)庫連接請求進行負(fù)載均衡,即,對單一數(shù)據(jù)源高并發(fā)數(shù)據(jù)庫訪問會產(chǎn)生流量擁堵瓶頸的情形,則將獲取數(shù)據(jù)庫的連接分出了優(yōu)先次序,優(yōu)先級高的訪問業(yè)務(wù)請求(數(shù)據(jù)庫連接請求)會優(yōu)先連接數(shù)據(jù)庫、優(yōu)先處理,反之低優(yōu)先級的則不予連接或滯后連接、不處理或后處理。
[0055]數(shù)據(jù)庫配置解析器1051、連接請求容器1053和數(shù)據(jù)庫配置資源模塊103的功能參見上述裝置及其模塊的描述。
[0056]在步驟S210,根據(jù)傳送來的數(shù)據(jù)庫連接請求,計算負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建獲取數(shù)據(jù)庫連接的任務(wù)Job。此后,可發(fā)送該數(shù)據(jù)庫連接任務(wù)進行調(diào)度處理??偟膩碚f,根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù)。
[0057]例如,連接請求容器1053接收到來自數(shù)據(jù)庫配置解析器1051的數(shù)據(jù)庫連接請求,則如圖4:添加一個數(shù)據(jù)庫連接請求,步驟S401 ;進入負(fù)載均衡算法,計算當(dāng)前數(shù)據(jù)源負(fù)載情況,以執(zhí)行負(fù)載均衡算法,最終,生成執(zhí)行策略,步驟S403 ;據(jù)此建立一個數(shù)據(jù)庫連接任務(wù)Job,并提交該數(shù)據(jù)庫連接任務(wù)做下一步處理,例如提交給連接調(diào)度模塊1055等,步驟S405。
[0058]這里,例如在所述數(shù)據(jù)庫連接請求的優(yōu)先級被確定后,由連接請求容器1053計算當(dāng)前負(fù)載情況。連接請求容器1053的功能參見上述裝置100中的描述。
[0059]采用負(fù)載均衡算法原理如:預(yù)設(shè)數(shù)據(jù)源最大數(shù)據(jù)庫連接量,并基于該數(shù)據(jù)源的最大數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級的數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量,例如,一種優(yōu)先級為高,一種優(yōu)先級為中,一種優(yōu)先級為低。這里為便于描述,用兩種優(yōu)先級(即高優(yōu)先級、低優(yōu)先級)。計算當(dāng)前數(shù)據(jù)源負(fù)載情況,如:在處理的數(shù)據(jù)庫連接請求數(shù)量、數(shù)據(jù)源的最大數(shù)據(jù)庫連接數(shù)量、待處理的數(shù)據(jù)庫連接請求數(shù)量、以及新接收的數(shù)據(jù)庫連接請求數(shù)量(步驟S301中生成的數(shù)據(jù)庫連接請求),判斷數(shù)據(jù)源的整體負(fù)載情況。如果數(shù)據(jù)源負(fù)載滿足高并發(fā)負(fù)載情況,例如,同一時間,系統(tǒng)并發(fā)訪問量很高,超過該系統(tǒng)處理性能能夠處理的范圍,造成數(shù)據(jù)庫連接請求在特定時間內(nèi)不能獲得有效的數(shù)據(jù)庫連接L可以先按照比例將數(shù)據(jù)源的最大數(shù)據(jù)庫連接數(shù)量,分給高、低優(yōu)先級別的數(shù)據(jù)庫連接請求(例如最大數(shù)量100,高級別組分60、低級別組分40等)。首先掃描正在運行的連接數(shù),根據(jù)配置的延遲策略和記錄策略(如數(shù)據(jù)庫配置資源模塊103中的數(shù)據(jù)庫的配置),對低優(yōu)先級別的在處理的數(shù)據(jù)庫連接請求進行延遲處理或備份處理,釋放此部分?jǐn)?shù)據(jù)庫連接,獲取高優(yōu)先級別的待處理的數(shù)據(jù)庫連接請求,先進入連接調(diào)度(如上述裝置100描述的連接調(diào)度模塊1055的功能),以分發(fā)建立的相應(yīng)的數(shù)據(jù)庫連接任務(wù)Job。對于前述釋放此部分?jǐn)?shù)據(jù)庫連接的那些低優(yōu)先級別的數(shù)據(jù)庫連接請求,則延遲產(chǎn)生數(shù)據(jù)庫連接任務(wù)Job和備份請求,不生成或延遲生成數(shù)據(jù)庫連接任務(wù) Job。
[0060]也就是說,負(fù)載均衡算法可以計算出當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;先為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
[0061]例如:預(yù)設(shè)系統(tǒng)性能支持的最大數(shù)據(jù)庫連接處理量為10、數(shù)據(jù)源的最大數(shù)據(jù)庫連接量為10、A (具有第一優(yōu)先級的數(shù)據(jù)庫連接請求)獲得5個數(shù)據(jù)庫連接量、B (具有第二優(yōu)先級的數(shù)據(jù)庫連接請求)獲得5個數(shù)據(jù)庫連接量,其中,第一優(yōu)先級高于第二優(yōu)先級。
[0062]在表1的每一種情況中,同一時間,接收的數(shù)據(jù)庫連接請求量、在處理的數(shù)據(jù)庫連接請求量、待處理的數(shù)據(jù)庫連接請求量,三者總和均大于系統(tǒng)性能能夠支持的最大數(shù)據(jù)庫連接量,導(dǎo)致負(fù)擔(dān)過重,造成在特定時間內(nèi)(如指定的獲取數(shù)據(jù)庫連接的等待時間內(nèi)),接收的數(shù)據(jù)庫連接請求未能獲得有效的數(shù)據(jù)庫連接(即沒有有效數(shù)據(jù)庫連接給新來的數(shù)據(jù)庫請求使用),出現(xiàn)高并發(fā)數(shù)據(jù)訪問的情況,此時,可以對數(shù)據(jù)庫連接請求采用本申請所述的負(fù)載均衡算法。
[0063]

【權(quán)利要求】
1.一種單一數(shù)據(jù)源的軟負(fù)載均衡的方法,其特征在于,包括: 觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置; 依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求; 根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù); 根據(jù)所述數(shù)據(jù)庫連接任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求,包括: 對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果,生成對應(yīng)所述數(shù)據(jù)庫請求的數(shù)據(jù)庫連接請求,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,包括: 所述數(shù)據(jù)庫配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級; 所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù),包括: 基于數(shù)據(jù)源的最大數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量; 計算當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)庫連接任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接還包括: 調(diào)度所述數(shù)據(jù)庫連接任務(wù),通過調(diào)用數(shù)據(jù)源建立數(shù)據(jù)庫連接。
6.一種單一數(shù)據(jù)源的軟負(fù)載均衡的裝置,其特征在于,包括: 數(shù)據(jù)庫配置資源模塊(103),用于觸發(fā)數(shù)據(jù)庫請求并定位數(shù)據(jù)庫請求配置; 數(shù)據(jù)庫請求配置解析器(1051 ),用于依據(jù)數(shù)據(jù)庫請求配置對數(shù)據(jù)庫請求進行數(shù)據(jù)庫配置解析處理,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求; 連接請求容器(1053),用于根據(jù)所述數(shù)據(jù)庫連接請求,計算數(shù)據(jù)源的負(fù)載均衡以生成執(zhí)行策略,并據(jù)此創(chuàng)建數(shù)據(jù)庫連接任務(wù); 連接調(diào)度模塊(1055),用于根據(jù)所述數(shù)據(jù)庫連接的任務(wù),基于所述執(zhí)行策略調(diào)度所述數(shù)據(jù)庫連接任務(wù),以創(chuàng)建數(shù)據(jù)庫連接。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)庫請求配置解析器(1051)還包括: 對所述數(shù)據(jù)庫請求,基于數(shù)據(jù)庫配置解析結(jié)果,生成對應(yīng)所述數(shù)據(jù)庫請求的數(shù)據(jù)庫連接請求,并發(fā)送相應(yīng)的數(shù)據(jù)庫連接請求。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述數(shù)據(jù)庫配置中包含對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級; 所述數(shù)據(jù)庫請求配置解析器(1051)還包括:所述數(shù)據(jù)庫連接請求具有與數(shù)據(jù)庫配置中包含的對應(yīng)數(shù)據(jù)庫請求的優(yōu)先級相同的優(yōu)先級。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述連接請求容器(1053)還包括: 基于數(shù)據(jù)源的最大數(shù)據(jù)庫連接量,預(yù)設(shè)每一種優(yōu)先級數(shù)據(jù)庫連接請求的數(shù)據(jù)庫連接量; 計算當(dāng)前數(shù)據(jù)源負(fù)載情況,釋放一個或多個具有低優(yōu)先級的在處理的數(shù)據(jù)庫連接請求占用的數(shù)據(jù)庫連接,并將釋放的所述數(shù)據(jù)庫連接分配給具有高優(yōu)先級的數(shù)據(jù)庫連接請求;為所述具有高優(yōu)先級的數(shù)據(jù)庫連接請求創(chuàng)建相應(yīng)的數(shù)據(jù)庫連接任務(wù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括: 數(shù)據(jù)源模塊(107) ,用于基于調(diào)度數(shù)據(jù)庫連接任務(wù),通過調(diào)用數(shù)據(jù)源建立數(shù)據(jù)庫連接。
【文檔編號】H04L12/803GK104052677SQ201310081728
【公開日】2014年9月17日 申請日期:2013年3月14日 優(yōu)先權(quán)日:2013年3月14日
【發(fā)明者】喬彥輝 申請人:阿里巴巴集團控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汉川市| 阳东县| 无棣县| 玉林市| 甘肃省| 麻江县| 广河县| 凤翔县| 香港| 永登县| 黄龙县| 葵青区| 赞皇县| 昆明市| 绵阳市| 宝丰县| 吕梁市| 安吉县| 崇文区| 温泉县| 万山特区| 沾化县| 海城市| 阜康市| 利辛县| 襄垣县| 景东| 黔西县| 新安县| 交口县| 常山县| 芒康县| 嵊泗县| 华坪县| 和龙市| 丁青县| 三门县| 桃园县| 三门峡市| 正定县| 萍乡市|