一種交易無(wú)損的分布式部署方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種交易無(wú)損的分布式部署方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)時(shí)代的發(fā)展,網(wǎng)絡(luò)用戶的增加,用戶對(duì)所使用系統(tǒng)的要求也越來(lái)越高,單 個(gè)主機(jī)或應(yīng)用性能再高也已無(wú)法滿足要求,阿里巴巴提出去I0E概念,并實(shí)現(xiàn)去I0E化,降 低維護(hù)成本,實(shí)現(xiàn)低成本化,越來(lái)越多服務(wù)提供商采用分布式云化部署,負(fù)載均衡、多機(jī)熱 備等部署方案,避免單點(diǎn)故障和性能壓力。
[0003]目前大型系統(tǒng)分布式部署多數(shù)都是通過(guò)負(fù)載均衡機(jī)配置交易平均分發(fā)到多臺(tái)設(shè) 備上的應(yīng)用,當(dāng)某臺(tái)設(shè)備應(yīng)用異常時(shí),負(fù)載均衡機(jī)每隔一段時(shí)間(配置幾秒到幾十秒)探測(cè) 到應(yīng)用異常,則不再分發(fā)請(qǐng)求到該應(yīng)用,但當(dāng)交易量很大時(shí),比如每秒幾十筆到上百筆,從 負(fù)載均衡判斷異常到分發(fā)阻斷這段時(shí)間,已經(jīng)導(dǎo)致大量交易失敗,無(wú)法正常受理。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問(wèn)題是,對(duì)于電信行業(yè)用戶需求多變,應(yīng)用需要頻繁重啟 的情況,又要保障集團(tuán)對(duì)于交易正常受理的考核,必須做到交易無(wú)損,故增加前置機(jī)應(yīng)用, 通過(guò)該應(yīng)用實(shí)現(xiàn)交易實(shí)時(shí)探測(cè),做到異常時(shí)交易無(wú)損,提供一種通過(guò)配置實(shí)時(shí)探測(cè)WEB應(yīng) 用的可用性,做到應(yīng)用層升級(jí)單點(diǎn)重啟交易無(wú)損,客戶端和用戶無(wú)感知,提升用戶體驗(yàn)的交 易無(wú)損的分布式部署方法。
[0005] 本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種交易無(wú)損的分布式部署方法,具 體包括以下步驟:
[0006] 步驟1 :前置機(jī)與多個(gè)web應(yīng)用端建立連接;
[0007] 步驟2:在前置機(jī)應(yīng)用中復(fù)制web應(yīng)用端的配置,并將復(fù)制的配置加載到內(nèi)存中并 進(jìn)行處理;
[0008] 步驟3:設(shè)置全局變量,循環(huán)讀取處理后的配置,使前置機(jī)對(duì)每個(gè)web應(yīng)用端實(shí)現(xiàn) 資源平均分配;
[0009] 步驟4 :前置機(jī)接收客戶端發(fā)送的請(qǐng)求,依次提取每個(gè)wed應(yīng)用端的url;
[0010] 步驟5 :探測(cè)wed應(yīng)用端,判斷獲取的url是否可用,如果是,執(zhí)行步驟6 ;否則,執(zhí) 行步驟7 ;
[0011] 步驟6 :客戶端通過(guò)前置機(jī)訪問(wèn)wed應(yīng)用端,結(jié)束;
[0012]步驟7:客戶端訪問(wèn)前置機(jī)中備用url,結(jié)束。
[0013] 本發(fā)明的有益效果是:增加前置應(yīng)用可以非常有效的增加系統(tǒng)的穩(wěn)定性,在WEB應(yīng)用層升級(jí)上線時(shí)只需要按臺(tái)分別操作,將不會(huì)產(chǎn)生任何失敗交易;增加前置應(yīng)用優(yōu)于直 接通過(guò)負(fù)載均衡接入WEB應(yīng)用的場(chǎng)景,如果負(fù)載均衡直接接入WEB應(yīng)用層,WEB應(yīng)用層重啟 時(shí)先通知負(fù)載均衡器應(yīng)用需要重啟,然后再進(jìn)行重啟,也可以避免重啟時(shí)應(yīng)用無(wú)損,但存在 重啟耗時(shí)長(zhǎng)的缺點(diǎn)(需等待負(fù)載均衡器探測(cè)完成),并且如果WEB應(yīng)用由于異常掛起時(shí)(依 賴數(shù)據(jù)庫(kù),并且頻繁升級(jí),出問(wèn)題的可能性大),無(wú)法避免的將會(huì)產(chǎn)生很多失敗交易;通過(guò) 增加前置層,提高系統(tǒng)穩(wěn)定性和用戶良好感知。
[0014] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0015] 進(jìn)一步,所述步驟4包括以下步驟:
[0016] 步驟4. 1 :客戶端發(fā)出請(qǐng)求,前置機(jī)接收客戶端發(fā)送的請(qǐng)求;
[0017] 步驟4.2 :判斷前置機(jī)是否需要重啟,如果是,執(zhí)行步驟4.3 ;否則,依次提取每個(gè) wed應(yīng)用端的url,執(zhí)行步驟5 ;
[0018] 步驟4. 3 :前置機(jī)通知負(fù)載均衡器該前置機(jī)不可用,負(fù)載均衡器增加url探測(cè),不 發(fā)送請(qǐng)求到不可用的前置機(jī);
[0019] 步驟4. 4:不可用的前置機(jī)進(jìn)行重啟,接收客戶端發(fā)送的請(qǐng)求,依次提取每個(gè)wed 應(yīng)用端的url,執(zhí)行步驟5〇
[0020] 進(jìn)一步,所述步驟2中前置機(jī)應(yīng)用中復(fù)制web應(yīng)用端的配置包括訪問(wèn)url和測(cè)試 url〇
[0021] 進(jìn)一步,所述步驟2中對(duì)配置的處理為:將訪問(wèn)url和測(cè)試url加載到數(shù)組中。
[0022] 本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種交易無(wú)損的分布式部署系統(tǒng),包 括連接建立模塊、配置模塊、設(shè)置模塊、請(qǐng)求接收模塊和判斷模塊;
[0023] 所述連接建立模塊用于使前置機(jī)與多個(gè)web應(yīng)用端建立連接;
[0024] 所述配置模塊用于在前置機(jī)應(yīng)用中復(fù)制web應(yīng)用端的配置,并將復(fù)制的配置加載 到內(nèi)存中并進(jìn)行處理;
[0025] 所述設(shè)置模塊用于設(shè)置全局變量,循環(huán)讀取處理后的配置,使前置機(jī)對(duì)每個(gè)web 應(yīng)用端實(shí)現(xiàn)資源平均分配;
[0026] 所述請(qǐng)求接收模塊用于控制前置機(jī)接收客戶端發(fā)送的請(qǐng)求,依次提取每個(gè)wed應(yīng) 用端的url;
[0027] 所述判斷模塊探測(cè)wed應(yīng)用端,判斷獲取的url是否可用,如果是,客戶端通過(guò)前 置機(jī)訪問(wèn)wed應(yīng)用端;否則,客戶端訪問(wèn)前置機(jī)中備用url。
[0028] 本發(fā)明的有益效果是:增加前置應(yīng)用可以非常有效的增加系統(tǒng)的穩(wěn)定性,在WEB 應(yīng)用層升級(jí)上線時(shí)只需要按臺(tái)分別操作,將不會(huì)產(chǎn)生任何失敗交易;增加前置應(yīng)用優(yōu)于直 接通過(guò)負(fù)載均衡接入WEB應(yīng)用的場(chǎng)景,如果負(fù)載均衡直接接入WEB應(yīng)用層,WEB應(yīng)用層重啟 時(shí)先通知負(fù)載均衡器應(yīng)用需要重啟,然后再進(jìn)行重啟,也可以避免重啟時(shí)應(yīng)用無(wú)損,但存在 重啟耗時(shí)長(zhǎng)的缺點(diǎn)(需等待負(fù)載均衡器探測(cè)完成),并且如果WEB應(yīng)用由于異常掛起時(shí)(依 賴數(shù)據(jù)庫(kù),并且頻繁升級(jí),出問(wèn)題的可能性大),無(wú)法避免的將會(huì)產(chǎn)生很多失敗交易。
[0029] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0030] 進(jìn)一步,所述請(qǐng)求接收模塊包括請(qǐng)求模塊、重啟判斷模塊、重新探測(cè)模塊和重啟模 塊;
[0031] 所述請(qǐng)求模塊用于客戶端發(fā)出請(qǐng)求,前置機(jī)接收客戶端發(fā)送的請(qǐng)求;
[0032] 所述重啟判斷模塊用于判斷前置機(jī)是否需要重啟,如果是,重新探測(cè)模塊;否則, 依次提取每個(gè)wed應(yīng)用端的url,觸發(fā)判斷模塊;
[0033]所述重新探測(cè)模塊用于前置機(jī)通知負(fù)載均衡器該前置機(jī)不可用,負(fù)載均衡器增加 url探測(cè),不發(fā)送請(qǐng)求到不可用的前置機(jī);
[0034] 所述重啟模塊用于控制不可用的前置機(jī)進(jìn)行重啟,接收客戶端發(fā)送的請(qǐng)求,依次 提取每個(gè)wed應(yīng)用端的url〇
[0035] 進(jìn)一步,所述配置模塊中前置機(jī)應(yīng)用中復(fù)制web應(yīng)用端的配置包括訪問(wèn)url和測(cè) 試url〇
[0036] 進(jìn)一步,所述配置模塊中對(duì)配置的處理為:將訪問(wèn)url和測(cè)試url加載到數(shù)組中。
[0037] 本方案的核心在于在負(fù)載均衡和WEB應(yīng)用層之間增加一個(gè)前置層,前置層的作用 和特點(diǎn)如下:
[0038] 1、前置層業(yè)務(wù)邏輯簡(jiǎn)單,配置化高,改動(dòng)少;
[0039] 2、無(wú)需頻繁重啟應(yīng)用,相對(duì)穩(wěn)定;
[0040] 3、前置層與數(shù)據(jù)無(wú)關(guān),不連數(shù)據(jù)庫(kù),避免數(shù)據(jù)庫(kù)問(wèn)題導(dǎo)致應(yīng)用掛起;
[0041] 4、前置層可適當(dāng)增加保障功能,在WEB應(yīng)用層異常掛起時(shí),可以進(jìn)行交易響應(yīng),避 免客戶端無(wú)法接收應(yīng)答。
【附圖說(shuō)明】
[0042] 圖1為本發(fā)明實(shí)施例所述的一種交易無(wú)損的分布式部署方法流程圖;
[0043] 圖2為本發(fā)明實(shí)施例所述的一種交易無(wú)損的分布式部署系統(tǒng)結(jié)構(gòu)框圖;
[0044] 圖3為本發(fā)明具體實(shí)施例1所述的分布式部署圖。
[0045] 附圖中,各標(biāo)號(hào)所代表的部件列表如下:
[0046] 1、連接建立模塊,2、配置模塊,3、設(shè)置模塊,4、請(qǐng)求接收模塊,5、判斷模塊,41、請(qǐng) 求模塊,42、重啟判斷模塊,43、重新探測(cè)模塊,44、重啟模塊。
【具體實(shí)施方式】
[0047] 以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0048] 如圖1所示,為本發(fā)明實(shí)施例所述的一種交易無(wú)損的分布式部署方法,具體包括 以下步驟:
[0049] 步驟1 :前置機(jī)與多個(gè)web應(yīng)用端建立連接;
[0050] 步驟2 :在前置機(jī)應(yīng)用中復(fù)制web應(yīng)用端的配置,并將復(fù)制的配置加載到內(nèi)存中并 進(jìn)行處理;
[0051] 步驟3:設(shè)置全局變量,循環(huán)讀取處理后的配置,使前置機(jī)對(duì)每個(gè)web應(yīng)用端實(shí)現(xiàn) 資源平均分配;
[0052] 步驟4 :前置機(jī)接收客戶端發(fā)送的請(qǐng)求,依次提取每個(gè)wed應(yīng)用端的url;
[0053] 步驟5 :探測(cè)wed應(yīng)用端,判斷獲取的url是否可用,如果是,執(zhí)行步驟6 ;否則,執(zhí) 行步驟7 ;
[0054] 步驟6 :客戶端通過(guò)前置機(jī)訪問(wèn)wed應(yīng)用端,結(jié)束;
[0055] 步驟7 :客戶端訪問(wèn)前置機(jī)中備用url,結(jié)束。
[0056] 所述步驟4包括以下步驟:
[0057] 步驟4. 1 :客戶端發(fā)出請(qǐng)求,前置機(jī)接收客