本申請涉及應(yīng)用程序開發(fā)技術(shù)領(lǐng)域,具體地說,涉及一種負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法。
背景技術(shù):
隨著現(xiàn)代IT技術(shù)的不斷發(fā)展,特別是移動互聯(lián)網(wǎng)技術(shù)的突飛猛進(jìn),網(wǎng)絡(luò)應(yīng)用程序的功能也越來越強(qiáng)大,,隨之而來的問題是:單一服務(wù)器的CPU運(yùn)算能力已無法滿足日漸龐大的計算需求,由此,誕生了服務(wù)器集群的概念,以解決單機(jī)運(yùn)算能力,I/O能力的限制和不足。在服務(wù)器集群中,所有應(yīng)用程序被分別部署到每臺服務(wù)器中。
目前,隨著各領(lǐng)域信息化推進(jìn),產(chǎn)生了各種大量行業(yè)平臺。這些平臺發(fā)揮著數(shù)據(jù)中轉(zhuǎn),資源集中管理功能。由于行業(yè)平臺往往承擔(dān)著大量的各種負(fù)載,但是自身服務(wù)器內(nèi)存又無法滿足大量數(shù)據(jù)處理需求。所以現(xiàn)有服務(wù)器的內(nèi)存管理方案逐漸成為了平臺性能提升的瓶頸。
現(xiàn)有技術(shù)中,實現(xiàn)均衡負(fù)載的方式有很多,不同的設(shè)計實現(xiàn)有不同的優(yōu)缺點,比如會話的共享可以采用粘性Sess1n的設(shè)計方式,性能上略勝于Memcached實現(xiàn)方式,缺點是一旦某一個應(yīng)用服務(wù)器節(jié)點故障,其對應(yīng)的所有業(yè)務(wù)將無法處理。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請所要解決的技術(shù)問題是提供了一種負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法,為應(yīng)用程序高并發(fā)訪問與高容錯設(shè)計提供一種解決方案,可以將高并發(fā)訪問分流到各個應(yīng)用服務(wù)器處理,避免多業(yè)務(wù)集中在某一個應(yīng)用服務(wù)器造成負(fù)載過重的現(xiàn)象。
為了解決上述技術(shù)問題,本申請有如下技術(shù)方案:
一種負(fù)載均衡網(wǎng)狀架構(gòu)的搭建運(yùn)行方法,其特征在于,包括:
選中網(wǎng)絡(luò)中的若干臺計算機(jī),在若干臺所述計算機(jī)上分別安裝Weblogic應(yīng)用服務(wù)器,并為每臺計算機(jī)上的Weblogic應(yīng)用服務(wù)器分別部署應(yīng)用程序,使得每臺計算機(jī)上的Weblogic應(yīng)用服務(wù)器能夠正常獨立運(yùn)行;
在所述網(wǎng)絡(luò)中另選至少一臺計算機(jī),在選擇的各臺計算機(jī)上分別搭建Memcached分布式內(nèi)存對象緩存系統(tǒng);
將若干臺所述計算機(jī)上的Weblogic應(yīng)用服務(wù)器分別與所述Memcached分布式內(nèi)存對象緩存系統(tǒng)關(guān)聯(lián),使得各所述Weblogic應(yīng)用服務(wù)器通過所述Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)會話共享;
在所述網(wǎng)路中另外選擇至少兩臺計算機(jī)分別安裝Nginx負(fù)載服務(wù)器;
配置每臺計算機(jī)上的Nginx負(fù)載服務(wù)器與各所述Weblogic應(yīng)用服務(wù)器的映射關(guān)系,使得每臺計算機(jī)上的Nginx負(fù)載服務(wù)器分別與各Weblogic應(yīng)用服務(wù)器關(guān)聯(lián);
所述Nginx負(fù)載服務(wù)器接收用戶的數(shù)據(jù)訪問請求,并將所述數(shù)據(jù)訪問請求發(fā)送至任意一個Weblogic應(yīng)用服務(wù)器;
所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中是否存儲有用戶所需數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù),并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶;否則,則從數(shù)據(jù)庫中下載所述用戶所需數(shù)據(jù)并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶,并將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中。
優(yōu)選地,其中:
所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中是否存儲有用戶所需數(shù)據(jù),進(jìn)一步為:
所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求中的SessionID,從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中查詢是否存儲有相同SessionID的數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有相同SessionID的數(shù)據(jù),則所述相同SessionID的數(shù)據(jù)為所述用戶所需數(shù)據(jù);若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有相同SessionID的數(shù)據(jù),則代表所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有所述用戶所需數(shù)據(jù)。
優(yōu)選地,其中:
在將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中之后,所述搭建運(yùn)行方法進(jìn)一步包括:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng)設(shè)置所接收到的用戶所需數(shù)據(jù)的有效使用時間,使得在所述有效使用時間內(nèi),所述Weblogic應(yīng)用服務(wù)器能夠直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù)。
優(yōu)選地,其中:
在所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲的用戶所需數(shù)據(jù)的有效使用時間到達(dá)后,所述Memcached分布式內(nèi)存對象緩存系統(tǒng)判定對應(yīng)的用戶所需數(shù)據(jù)為失效數(shù)據(jù),并將所述失效數(shù)據(jù)進(jìn)行刪除。
優(yōu)選地,其中:
若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù)之后,所述搭建運(yùn)行方法進(jìn)一步包括:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng)對所述Weblogic應(yīng)用服務(wù)器所下載的用戶所需數(shù)據(jù)的有效使用時間進(jìn)行更新。
一種負(fù)載均衡網(wǎng)狀架構(gòu),包括:若干臺Weblogic應(yīng)用服務(wù)器、至少一臺Memcached分布式內(nèi)存對象緩存系統(tǒng)和至少兩臺Nginx負(fù)載服務(wù)器,其中,
若干臺所述若干臺Weblogic應(yīng)用服務(wù)器,分別安裝在網(wǎng)絡(luò)中的若干臺計算機(jī)上,在每臺計算機(jī)上正常獨立運(yùn)行;
至少一臺所述Memcached分布式內(nèi)存對象緩存系統(tǒng),搭建在網(wǎng)絡(luò)中的另一臺計算機(jī)上,各所述Memcached分布式內(nèi)存對象緩存系統(tǒng)分別與若干臺所述Weblogic應(yīng)用服務(wù)器關(guān)聯(lián),使得各所述Weblogic應(yīng)用服務(wù)器通過所述Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)會話共享;
至少兩臺Nginx負(fù)載服務(wù)器,分別安裝在網(wǎng)絡(luò)中的至少兩臺計算機(jī)上,每臺計算機(jī)上的Nginx負(fù)載服務(wù)器分別與各Weblogic應(yīng)用服務(wù)器關(guān)聯(lián);
所述Nginx負(fù)載服務(wù)器,用于接收用戶的數(shù)據(jù)訪問請求,并將所述數(shù)據(jù)訪問請求發(fā)送至任意一個Weblogic應(yīng)用服務(wù)器;
所述Weblogic應(yīng)用服務(wù)器,用于根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中是否存儲有用戶所需數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù),并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶;否則,則從數(shù)據(jù)庫中下載所述用戶所需數(shù)據(jù)并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶,并將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中。
優(yōu)選地,其中:
所述Weblogic應(yīng)用服務(wù)器,進(jìn)一步用于:根據(jù)所述數(shù)據(jù)訪問請求中的SessionID,從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中查詢是否存儲有相同SessionID的數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有相同SessionID的數(shù)據(jù),則所述相同SessionID的數(shù)據(jù)為所述用戶所需數(shù)據(jù);若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有相同SessionID的數(shù)據(jù),則代表所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有所述用戶所需數(shù)據(jù)。
優(yōu)選地,其中:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng),用于在接收到用戶所需數(shù)據(jù)后,設(shè)置所接收到的用戶所需數(shù)據(jù)的有效使用時間,使得在所述有效使用時間內(nèi),所述Weblogic應(yīng)用服務(wù)器能夠直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù)。
優(yōu)選地,其中:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng),進(jìn)一步用于在所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲的用戶所需數(shù)據(jù)的有效使用時間到達(dá)后,所述Memcached分布式內(nèi)存對象緩存系統(tǒng)判定對應(yīng)的用戶所需數(shù)據(jù)為失效數(shù)據(jù),并將所述失效數(shù)據(jù)進(jìn)行刪除。
優(yōu)選地,其中:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng),進(jìn)一步用于在所述Weblogic應(yīng)用服務(wù)器從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載用戶所需數(shù)據(jù)之后,對所述Weblogic應(yīng)用服務(wù)器所下載的用戶所需數(shù)據(jù)的有效使用時間進(jìn)行更新。
與現(xiàn)有技術(shù)相比,本申請所述的方法及系統(tǒng),達(dá)到了如下效果:
第一,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法,多個Nginx負(fù)載服務(wù)器同時為多個Weblogic應(yīng)用服務(wù)器服務(wù),采用“多對多”模型,其中任何一個Nginx負(fù)載服務(wù)器或Weblogic應(yīng)用服務(wù)器故障都不會影響業(yè)務(wù)的正常運(yùn)行,可以將高并發(fā)訪問分流到各個應(yīng)用服務(wù)器處理,避免多業(yè)務(wù)集中在某一個應(yīng)用服務(wù)器造成負(fù)載過重的現(xiàn)象。
第二,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法,通過Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)多個Weblogic應(yīng)用服務(wù)器會話共享,保證即使其中某個Weblogic應(yīng)用服務(wù)器故障,業(yè)務(wù)仍能夠平滑移交其他正常服務(wù)器而不影響用戶正常業(yè)務(wù)操作。
第三,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法中,Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲用戶所需數(shù)據(jù),在用戶請求相應(yīng)數(shù)據(jù)時,可以直接從Memcached分布式內(nèi)存對象緩存系統(tǒng)下載,避免了從數(shù)據(jù)庫下載時耗費時間長的缺陷,而且Memcached分布式內(nèi)存對象緩存系統(tǒng)還能對其存儲的用戶所需數(shù)據(jù)設(shè)置有效時限,當(dāng)超出設(shè)置的有效時間時,會自動將無效的數(shù)據(jù)刪除,有效節(jié)省了內(nèi)存,從而有利于提高M(jìn)emcached分布式內(nèi)存對象緩存系統(tǒng)的運(yùn)行速度。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本發(fā)明的所述一種負(fù)載均衡網(wǎng)狀架構(gòu)的搭建運(yùn)行流程圖;
圖2為本發(fā)明的所述一種負(fù)載均衡網(wǎng)狀架構(gòu)的結(jié)構(gòu)圖;
圖3為本發(fā)明的所述一種負(fù)載均衡網(wǎng)狀架構(gòu)運(yùn)行實施例的流程圖。
具體實施方式
如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目的,并非用以限定本申請的范圍。本申請的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
實施例1
參見圖1所示為本申請所述一種負(fù)載均衡網(wǎng)狀架構(gòu)的具體實施例,該方法包括:
步驟101、選中網(wǎng)絡(luò)中的若干臺計算機(jī),在若干臺所述計算機(jī)上分別安裝Weblogic應(yīng)用服務(wù)器,并為每臺計算機(jī)上的Weblogic應(yīng)用服務(wù)器分別部署應(yīng)用程序,使得每臺計算機(jī)上的Weblogic應(yīng)用服務(wù)器能夠正常獨立運(yùn)行;
步驟102、在所述網(wǎng)絡(luò)中另選至少一臺計算機(jī),在選擇的各臺計算機(jī)上分別搭建Memcached分布式內(nèi)存對象緩存系統(tǒng);
步驟103、將若干臺所述計算機(jī)上的Weblogic應(yīng)用服務(wù)器分別與所述Memcached分布式內(nèi)存對象緩存系統(tǒng)關(guān)聯(lián),使得各所述Weblogic應(yīng)用服務(wù)器通過所述Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)會話共享;
步驟104、在所述網(wǎng)路中另外選擇至少兩臺計算機(jī)分別安裝Nginx負(fù)載服務(wù)器;
步驟105、配置每臺計算機(jī)上的Nginx負(fù)載服務(wù)器與各所述Weblogic應(yīng)用服務(wù)器的映射關(guān)系,使得每臺計算機(jī)上的Nginx負(fù)載服務(wù)器分別與各Weblogic應(yīng)用服務(wù)器關(guān)聯(lián);
步驟106、所述Nginx負(fù)載服務(wù)器接收用戶的數(shù)據(jù)訪問請求,并將所述數(shù)據(jù)訪問請求發(fā)送至任意一個Weblogic應(yīng)用服務(wù)器;
步驟107、所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中是否存儲有用戶所需數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù),并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶;否則,則從數(shù)據(jù)庫中下載所述用戶所需數(shù)據(jù)并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶,并將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中。
上述步驟101至步驟105,體現(xiàn)了本申請中負(fù)載均衡網(wǎng)狀架構(gòu)的搭建方法,上述步驟106和步驟107,體現(xiàn)了本申請中負(fù)載均衡網(wǎng)狀架構(gòu)的運(yùn)行方法。
本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)的搭建運(yùn)行方法中,多個Nginx負(fù)載服務(wù)器同時為多個Weblogic應(yīng)用服務(wù)器服務(wù),采用“多對多”模型,其中任何一個Nginx負(fù)載服務(wù)器或Weblogic應(yīng)用服務(wù)器故障都不會影響業(yè)務(wù)的正常運(yùn)行,可以將高并發(fā)訪問分流到各個應(yīng)用服務(wù)器處理,避免多業(yè)務(wù)集中在某一個應(yīng)用服務(wù)器造成負(fù)載過重的現(xiàn)象。
此外,本申請通過Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)多個Weblogic應(yīng)用服務(wù)器會話共享,保證即使其中某個Weblogic應(yīng)用服務(wù)器故障,業(yè)務(wù)仍能夠平滑移交其他正常服務(wù)器而不影響用戶正常業(yè)務(wù)操作。
上述步驟107中,所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中是否存儲有用戶所需數(shù)據(jù),進(jìn)一步為:
所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求中的SessionID,從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中查詢是否存儲有相同SessionID的數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有相同SessionID的數(shù)據(jù),則所述相同SessionID的數(shù)據(jù)為所述用戶所需數(shù)據(jù);若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有相同SessionID的數(shù)據(jù),則代表所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有所述用戶所需數(shù)據(jù)。
考慮到在接收到用戶的數(shù)據(jù)訪問請求時,如果每次都從數(shù)據(jù)庫里查詢、下載,由于數(shù)據(jù)庫存儲的內(nèi)容龐大,查詢過程將會消耗很長時間,在首次接收到用戶的數(shù)據(jù)訪問請求并從數(shù)據(jù)庫里查詢到用戶所需資料后,本申請將用戶所需數(shù)據(jù)一并存儲到Memcached分布式內(nèi)存對象緩存系統(tǒng)中。當(dāng)再次收到用戶對該用戶所需資料的數(shù)據(jù)訪問請求后,則可首先查詢Memcached分布式內(nèi)存對象緩存系統(tǒng),然后直接從Memcached分布式內(nèi)存對象緩存系統(tǒng)下載用戶所需資料,極大地節(jié)省了從數(shù)據(jù)庫查詢所消耗的時間,有效提升了數(shù)據(jù)查詢效率。
上述步驟107中,在將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中之后,所述搭建運(yùn)行方法進(jìn)一步包括:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng)設(shè)置所接收到的用戶所需數(shù)據(jù)的有效使用時間,使得在所述有效使用時間內(nèi),所述Weblogic應(yīng)用服務(wù)器能夠直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù)。
進(jìn)一步地,在所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲的用戶所需數(shù)據(jù)的有效使用時間到達(dá)后,所述Memcached分布式內(nèi)存對象緩存系統(tǒng)判定對應(yīng)的用戶所需數(shù)據(jù)為失效數(shù)據(jù),并將所述失效數(shù)據(jù)進(jìn)行刪除。
通過上述方式,對Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲的資源進(jìn)行過濾,對失效的資源數(shù)據(jù)進(jìn)行刪除,從而有利于保證Memcached分布式內(nèi)存對象緩存系統(tǒng)的運(yùn)行速度,如此方式,對提升整體的數(shù)據(jù)查詢效率起到了很大的作用。
上述步驟107中,若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中下載所述用戶所需數(shù)據(jù)之后,所述搭建運(yùn)行方法進(jìn)一步包括:
所述Memcached分布式內(nèi)存對象緩存系統(tǒng)對所述Weblogic應(yīng)用服務(wù)器所下載的用戶所需數(shù)據(jù)的有效使用時間進(jìn)行更新。
通過以上方式,當(dāng)從Memcached分布式內(nèi)存對象緩存系統(tǒng)下載某個資源數(shù)據(jù)后,Memcached分布式內(nèi)存對象緩存系統(tǒng)可對該資源數(shù)據(jù)的有效使用時間進(jìn)行調(diào)整,適當(dāng)?shù)貙⒂行褂脮r間延后,以保證不會將使用率較高的資源數(shù)據(jù)進(jìn)行刪除,滿足用戶的下載需求。例如當(dāng)用戶下載了1次文件A后,將文件A的有效使用時間延后1天,當(dāng)又有用戶下載文件A后,再將文件A的有效使用時間延后1天。延后次數(shù)越多,說明文件A被下載的幾率就越大,通過延后有效使用時間的方式來保證下載率較高的文件能在Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲較長時間,以方便用戶的快速查詢下載。
實施例2
參見圖2所示為本申請所述一種負(fù)載均衡網(wǎng)狀架構(gòu)的具體實施例,該系統(tǒng)包括:若干臺Weblogic應(yīng)用服務(wù)器10、至少一臺Memcached分布式內(nèi)存對象緩存系統(tǒng)20和至少兩臺Nginx負(fù)載服務(wù)器30,其中,
若干臺所述若干臺Weblogic應(yīng)用服務(wù)器10,分別安裝在網(wǎng)絡(luò)中的若干臺計算機(jī)上,在每臺計算機(jī)上正常獨立運(yùn)行;
至少一臺所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20,搭建在網(wǎng)絡(luò)中的另一臺計算機(jī)上,各所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20分別與若干臺所述Weblogic應(yīng)用服務(wù)器10關(guān)聯(lián),使得各所述Weblogic應(yīng)用服務(wù)器10通過所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20實現(xiàn)會話共享;
至少兩臺Nginx負(fù)載服務(wù)器30,分別安裝在網(wǎng)絡(luò)中的至少兩臺計算機(jī)上,每臺計算機(jī)上的Nginx負(fù)載服務(wù)器30分別與各Weblogic應(yīng)用服務(wù)器10關(guān)聯(lián);
所述Nginx負(fù)載服務(wù)器30,用于接收用戶的數(shù)據(jù)訪問請求,并將所述數(shù)據(jù)訪問請求發(fā)送至任意一個Weblogic應(yīng)用服務(wù)器10;
所述Weblogic應(yīng)用服務(wù)器10,用于根據(jù)所述數(shù)據(jù)訪問請求,判斷所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中是否存儲有用戶所需數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中存儲有所述用戶所需數(shù)據(jù),則直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中下載所述用戶所需數(shù)據(jù),并通過Nginx負(fù)載服務(wù)器30發(fā)送給用戶;否則,則從數(shù)據(jù)庫中下載所述用戶所需數(shù)據(jù)并通過Nginx負(fù)載服務(wù)器30發(fā)送給用戶,并將所述用戶所需數(shù)據(jù)存儲至所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中。
本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)中,若干個Weblogic應(yīng)用服務(wù)器10形成一個服務(wù)器應(yīng)用集群11。
本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)中,多個Nginx負(fù)載服務(wù)器30同時為多個Weblogic應(yīng)用服務(wù)器10服務(wù),采用“多對多”模型,其中任何一個Nginx負(fù)載服務(wù)器30或Weblogic應(yīng)用服務(wù)器10故障都不會影響業(yè)務(wù)的正常運(yùn)行,可以將高并發(fā)訪問分流到各個應(yīng)用服務(wù)器10處理,避免多業(yè)務(wù)集中在某一個應(yīng)用服務(wù)器10造成負(fù)載過重的現(xiàn)象。
此外,本申請通過Memcached分布式內(nèi)存對象緩存系統(tǒng)20實現(xiàn)多個Weblogic應(yīng)用服務(wù)器10會話共享,保證即使其中某個Weblogic應(yīng)用服務(wù)器10故障,業(yè)務(wù)仍能夠平滑移交其他正常服務(wù)器而不影響用戶正常業(yè)務(wù)操作。
本申請中的Weblogic應(yīng)用服務(wù)器10,進(jìn)一步用于:根據(jù)所述數(shù)據(jù)訪問請求中的SessionID,從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中查詢是否存儲有相同SessionID的數(shù)據(jù),若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中存儲有相同SessionID的數(shù)據(jù),則所述相同SessionID的數(shù)據(jù)為所述用戶所需數(shù)據(jù);若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中未存儲有相同SessionID的數(shù)據(jù),則代表所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中未存儲有所述用戶所需數(shù)據(jù)。
考慮到在接收到用戶的數(shù)據(jù)訪問請求時,如果每次都從數(shù)據(jù)庫里查詢、下載,由于數(shù)據(jù)庫存儲的內(nèi)容龐大,查詢過程將會消耗很長時間,在首次接收到用戶的數(shù)據(jù)訪問請求并從數(shù)據(jù)庫里查詢到用戶所需資料后,本申請將用戶所需數(shù)據(jù)一并存儲到Memcached分布式內(nèi)存對象緩存系統(tǒng)20中。當(dāng)再次收到用戶對該用戶所需資料的數(shù)據(jù)訪問請求后,則可首先查詢Memcached分布式內(nèi)存對象緩存系統(tǒng)20,然后直接從Memcached分布式內(nèi)存對象緩存系統(tǒng)20下載用戶所需資料,極大地節(jié)省了從數(shù)據(jù)庫查詢所消耗的時間,有效提升了數(shù)據(jù)查詢效率。
本申請中的Memcached分布式內(nèi)存對象緩存系統(tǒng)20,用于在接收到用戶所需數(shù)據(jù)后,設(shè)置所接收到的用戶所需數(shù)據(jù)的有效使用時間,使得在所述有效使用時間內(nèi),所述Weblogic應(yīng)用服務(wù)器10能夠直接從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中下載所述用戶所需數(shù)據(jù)。
本申請中的Memcached分布式內(nèi)存對象緩存系統(tǒng)20,進(jìn)一步用于在所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中存儲的用戶所需數(shù)據(jù)的有效使用時間到達(dá)后,所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20判定對應(yīng)的用戶所需數(shù)據(jù)為失效數(shù)據(jù),并將所述失效數(shù)據(jù)進(jìn)行刪除。
通過上述方式,對Memcached分布式內(nèi)存對象緩存系統(tǒng)20中存儲的資源進(jìn)行過濾,對失效的資源數(shù)據(jù)進(jìn)行刪除,從而有利于保證Memcached分布式內(nèi)存對象緩存系統(tǒng)20的運(yùn)行速度,如此方式,對提升整體的數(shù)據(jù)查詢效率起到了很大的作用。
本申請中的Memcached分布式內(nèi)存對象緩存系統(tǒng)20,進(jìn)一步用于在所述Weblogic應(yīng)用服務(wù)器10從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)20中下載用戶所需數(shù)據(jù)之后,對所述Weblogic應(yīng)用服務(wù)器10所下載的用戶所需數(shù)據(jù)的有效使用時間進(jìn)行更新。
通過以上方式,當(dāng)從Memcached分布式內(nèi)存對象緩存系統(tǒng)20下載某個資源數(shù)據(jù)后,Memcached分布式內(nèi)存對象緩存系統(tǒng)20可對該資源數(shù)據(jù)的有效使用時間進(jìn)行調(diào)整,適當(dāng)?shù)貙⒂行褂脮r間延后,以保證不會將使用率較高的資源數(shù)據(jù)進(jìn)行刪除,滿足用戶的下載需求。例如當(dāng)用戶下載了1次文件B后,將文件B的有效使用時間延后1天,當(dāng)又有用戶下載文件B后,再將文件B的有效使用時間延后2天。延后次數(shù)越多,說明文件A被下載的幾率就越大,有效使用時間被延長的越多。通過延后有效使用時間的方式來保證下載率較高的文件能在Memcached分布式內(nèi)存對象緩存系統(tǒng)20中存儲較長時間,從而方便用戶的快速查詢下載。
本申請中,用戶下載一次某個文件后,對該文件的有效使用時間的延長范圍可自行靈活設(shè)置,例如可設(shè)為每次延長相同的時間,也可設(shè)為下載次數(shù)越多,延長時間遞增等等。
實施例3
以下提供一種本發(fā)明負(fù)載均衡網(wǎng)狀架構(gòu)的應(yīng)用實施例,具體包括:
步驟201、Nginx負(fù)載服務(wù)器接收用戶的數(shù)據(jù)訪問請求,并將所述數(shù)據(jù)訪問請求發(fā)送至任意一個Weblogic應(yīng)用服務(wù)器;
步驟202、所述Weblogic應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)訪問請求中的SessionID,從所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中查詢是否存儲有相同SessionID的數(shù)據(jù);
步驟203、若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲有相同SessionID的數(shù)據(jù),則所述相同SessionID的數(shù)據(jù)為所述用戶所需數(shù)據(jù),將所述用戶所需數(shù)據(jù)發(fā)送給用戶;
步驟204、若所述Memcached分布式內(nèi)存對象緩存系統(tǒng)中未存儲有相同SessionID的數(shù)據(jù),則Weblogic應(yīng)用服務(wù)器從數(shù)據(jù)庫中下載所述用戶所需數(shù)據(jù)并通過Nginx負(fù)載服務(wù)器發(fā)送給用戶;
步驟205、Weblogic應(yīng)用服務(wù)器將從數(shù)據(jù)庫中下載的用戶所需數(shù)據(jù)發(fā)送至Memcached分布式內(nèi)存對象緩存系統(tǒng)中;
步驟206、Memcached分布式內(nèi)存對象緩存系統(tǒng)對接收到的用戶所需數(shù)據(jù)設(shè)置有效使用時間;
步驟207、Memcached分布式內(nèi)存對象緩存系統(tǒng)在接收到數(shù)據(jù)下載請求時,將存儲在其中的相應(yīng)數(shù)據(jù)發(fā)送至Weblogic應(yīng)用服務(wù)器,并延長相應(yīng)數(shù)據(jù)的有效使用時間;
步驟208、Memcached分布式內(nèi)存對象緩存系統(tǒng)判斷存儲在其中的各項數(shù)據(jù)是否到達(dá)數(shù)據(jù)有效時間,若到達(dá),則認(rèn)為數(shù)據(jù)失效,并將失效數(shù)據(jù)刪除。
通過以上各實施例可知,本申請存在的有益效果是:
第一,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法,多個Nginx負(fù)載服務(wù)器同時為多個Weblogic應(yīng)用服務(wù)器服務(wù),采用“多對多”模型,其中任何一個Nginx負(fù)載服務(wù)器或Weblogic應(yīng)用服務(wù)器故障都不會影響業(yè)務(wù)的正常運(yùn)行,可以將高并發(fā)訪問分流到各個應(yīng)用服務(wù)器處理,避免多業(yè)務(wù)集中在某一個應(yīng)用服務(wù)器造成負(fù)載過重的現(xiàn)象。
第二,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法,通過Memcached分布式內(nèi)存對象緩存系統(tǒng)實現(xiàn)多個Weblogic應(yīng)用服務(wù)器會話共享,保證即使其中某個Weblogic應(yīng)用服務(wù)器故障,業(yè)務(wù)仍能夠平滑移交其他正常服務(wù)器而不影響用戶正常業(yè)務(wù)操作。
第三,本發(fā)明所提供的負(fù)載均衡網(wǎng)狀架構(gòu)及其搭建運(yùn)行方法中,Memcached分布式內(nèi)存對象緩存系統(tǒng)中存儲用戶所需數(shù)據(jù),在用戶請求相應(yīng)數(shù)據(jù)時,可以直接從Memcached分布式內(nèi)存對象緩存系統(tǒng)下載,避免了從數(shù)據(jù)庫下載時耗費時間長的缺陷,而且Memcached分布式內(nèi)存對象緩存系統(tǒng)還能對其存儲的用戶所需數(shù)據(jù)設(shè)置有效時限,當(dāng)超出設(shè)置的有效時間時,會自動將無效的數(shù)據(jù)刪除,有效節(jié)省了內(nèi)存,從而有利于提高M(jìn)emcached分布式內(nèi)存對象緩存系統(tǒng)的運(yùn)行速度。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、裝置、或計算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機(jī)可用程序代碼的計算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機(jī)程序產(chǎn)品的形式。
上述說明示出并描述了本申請的若干優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本申請并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申請所附權(quán)利要求的保護(hù)范圍內(nèi)。