用于后臺集群服務(wù)的負(fù)載均衡分配方法、代理及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集群服務(wù)領(lǐng)域,尤其涉及一種用于后臺集群服務(wù)的負(fù)載均衡分配方 法、代理及系統(tǒng)。
【背景技術(shù)】
[0002] 在互聯(lián)網(wǎng)海量服務(wù)開發(fā)任務(wù)中,后臺服務(wù)的集群設(shè)計(jì)和集群部署是軟件開發(fā)人員 必須解決的一個問題。服務(wù)器之間的差異性以及網(wǎng)絡(luò)的不確定性,對集群部署的服務(wù)穩(wěn)定 性產(chǎn)生了非常大的影響。如何在服務(wù)器性能差異比較大的服務(wù)之間最優(yōu)分配服務(wù),如何在 網(wǎng)絡(luò)或服務(wù)異常時把請求導(dǎo)向正常的環(huán)境和服務(wù),以及異常恢復(fù)正常時能夠?qū)⑵渲匦录尤?請求分發(fā)列表,成為了后臺服務(wù)開發(fā)人員需要解決的課題。
[0003] -般的處理方法是在服務(wù)的配置文件中,對每個網(wǎng)絡(luò)接口調(diào)用配置目標(biāo)IP和端 口,在服務(wù)啟動時將配置加載到內(nèi)存,當(dāng)網(wǎng)絡(luò)或服務(wù)異常及恢復(fù)正常時,手動修改配置文件 然后重啟服務(wù)。另外的一種方法是通過一個配置中心進(jìn)行配置,業(yè)務(wù)服務(wù)實(shí)時從配置中心 獲取最新的服務(wù)配置信息,當(dāng)網(wǎng)絡(luò)異常和恢復(fù)正常時,修改配置中心的配置即可。
[0004] 第一種方法的缺點(diǎn)是,當(dāng)異常發(fā)生時需要修改配置和重啟服務(wù),這需要中斷服務(wù) 從而使業(yè)務(wù)系統(tǒng)不能服務(wù)客戶,由于不具備動態(tài)調(diào)整能力只能對業(yè)務(wù)請求進(jìn)行簡單的負(fù)載 均衡和服務(wù)請求轉(zhuǎn)發(fā)。第二種通過配置中心進(jìn)行配置的方法,雖然在異常時不需要重啟服 務(wù),但不能自適應(yīng)實(shí)際環(huán)境情況,很難實(shí)現(xiàn)最大化使用服務(wù)器的處理能力,當(dāng)異常出現(xiàn)時需 要人工干涉才能進(jìn)行請求的正確分發(fā),同樣也只能對業(yè)務(wù)請求進(jìn)行簡單的負(fù)載均衡和服務(wù) 請求轉(zhuǎn)發(fā)。
[0005] 因此,現(xiàn)有技術(shù)存在缺陷,需要改進(jìn)。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種用于后臺集 群服務(wù)的負(fù)載均衡分配方法、代理及系統(tǒng)。
[0007] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:構(gòu)造一種用于后臺集群服務(wù)的負(fù)載 均衡分配方法,包括:
[0008] S1、在一個時間區(qū)間內(nèi),基于各個服務(wù)器的初始權(quán)重/步驟S2重新設(shè)定的權(quán)重,根 據(jù)負(fù)載均衡算法分配連接請求給相應(yīng)的服務(wù)器;
[0009] S2、在一個時間區(qū)間結(jié)束后,根據(jù)在該時間區(qū)間內(nèi)各個服務(wù)器的響應(yīng)時間和成功 率,重新計(jì)算并設(shè)定各個服務(wù)器的權(quán)值,啟動下一個時間區(qū)間并進(jìn)入步驟S1。
[0010] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配方法中,所述步驟S2包括:
[0011] S21、在一個時間區(qū)間結(jié)束后,分別獲取在最新結(jié)束的時間區(qū)間內(nèi)各個服務(wù)器的響 應(yīng)時間和成功率;
[0012] S22、基于各個服務(wù)器的響應(yīng)時間分別計(jì)算各個服務(wù)器的平均響應(yīng)時間,基于各個 服務(wù)器的平均響應(yīng)時間計(jì)算得到平均響應(yīng)時間之積和平均響應(yīng)時間之和;
[0013]S23、分別基于公式(1)確定各個服務(wù)器的響應(yīng)時間因子:
[0014]
[0015]S24、分別基于公式(2)計(jì)算并設(shè)定各個服務(wù)器的權(quán)值:
[0016] W=P*e2*C(2)
[0017]S25、如果某個服務(wù)器的權(quán)值大于W_,則將該某個服務(wù)器的權(quán)值設(shè)定為W_;如果 某個服務(wù)器的權(quán)值小于1,則將該某個服務(wù)器的權(quán)值設(shè)定為1 ;
[0018] S26、啟動下一個時間區(qū)間并進(jìn)入步驟S1 ;
[0019] 其中,β代表本機(jī)的響應(yīng)時間因子,Pro代表步驟S22中的平均響應(yīng)時間之積,Sum 代表步驟S22中的平均響應(yīng)時間之和,f代表本機(jī)的平均響應(yīng)時間;W代表本機(jī)的權(quán)值,P代 表本機(jī)的成功率,C代表權(quán)值基數(shù),為一個設(shè)定好的整數(shù),W_代表最高權(quán)值,為一個預(yù)設(shè)的 大于1的整數(shù)。
[0020] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配方法中,所述步驟S2還包括: 在進(jìn)入每個時間區(qū)間之前讀取配置信息,并根據(jù)配置信息將集群服務(wù)的集群數(shù)量增加所對 應(yīng)的服務(wù)器的權(quán)值設(shè)定為1,將集群服務(wù)的集群數(shù)量減小所對應(yīng)的服務(wù)器在步驟S1中從所 有的服務(wù)器中直接刪除。
[0021] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配方法中,1_為100。
[0022] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配方法中,所述步驟S1中所述 的根據(jù)負(fù)載均衡算法分配連接給相應(yīng)的服務(wù)器包括:
[0023]S11、對于第一個時間區(qū)間,各個服務(wù)器的權(quán)值為初始權(quán)重,其他時間區(qū)間各個服 務(wù)器的權(quán)值為步驟S2中設(shè)定的權(quán)重;
[0024]S12、確定所有服務(wù)器權(quán)值的最大公約數(shù),將比較因子設(shè)置為所有服務(wù)器權(quán)值中的 最大權(quán)值;
[0025] S13、依次比較每臺服務(wù)器的權(quán)值與比較因子的大小,如果某個服務(wù)器的權(quán)值大于 或等于比較因子,則將該服務(wù)器分配給下一個連接請求;
[0026]S14、當(dāng)所有的服務(wù)器比較完成后,將比較因子以最大公約數(shù)為步長遞減;如果比 較因子小于〇,則將比較因子重新設(shè)置為最大權(quán)值,跳轉(zhuǎn)至步驟S13。
[0027] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配方法中,初始權(quán)重設(shè)置為1。
[0028] 本發(fā)明還公開了一種用于后臺集群服務(wù)的負(fù)載均衡分配代理,包括
[0029] 負(fù)載分配模塊:用于在一個時間區(qū)間內(nèi),基于各個服務(wù)器的初始權(quán)重/權(quán)值修正 模塊重新設(shè)定的權(quán)重,根據(jù)負(fù)載均衡算法分配連接請求給相應(yīng)的服務(wù)器;
[0030] 權(quán)值修正模塊:在一個時間區(qū)間結(jié)束后,根據(jù)在該時間區(qū)間內(nèi)各個服務(wù)器的響應(yīng) 時間和成功率,重新計(jì)算并設(shè)定各個服務(wù)器的權(quán)值,啟動下一個時間區(qū)間并觸發(fā)負(fù)載分配 模塊工作。
[0031] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配代理中,所述權(quán)值修正模塊包 括:
[0032] 響應(yīng)時間和成功率獲取單元:用于在一個時間區(qū)間結(jié)束后,分別獲取在最新結(jié)束 的時間區(qū)間內(nèi)各個服務(wù)器的響應(yīng)時間和成功率;
[0033]響應(yīng)時間因子計(jì)算單元:用于基于各個服務(wù)器的響應(yīng)時間分別計(jì)算各個服務(wù)器的 平均響應(yīng)時間,基于各個服務(wù)器的平均響應(yīng)時間計(jì)算得到平均響應(yīng)時間之積和平均響應(yīng)時 間之和,再基于公式(1)確定各個服務(wù)器的響應(yīng)時間因子:
[0034]
[0035] 權(quán)值計(jì)算單元:用于基于公式(2)計(jì)算并設(shè)定各個服務(wù)器的權(quán)值,如果某個服務(wù) 器的權(quán)值大于W_,則將該某個服務(wù)器的權(quán)值設(shè)定為W_;如果某個服務(wù)器的權(quán)值小于1,則 將該某個服務(wù)器的權(quán)值設(shè)定為1 ;啟動下一個時間區(qū)間并觸發(fā)負(fù)載分配模塊工作;
[0036] W=Ρ*β2*C (2)
[0037] 其中,β代表本機(jī)的響應(yīng)時間因子,Pro代表步驟S22中的平均響應(yīng)時間之積,Sum 代表步驟S22中的平均響應(yīng)時間之和,f代表本機(jī)的平均響應(yīng)時間;W代表本機(jī)的權(quán)值,P代 表本機(jī)的成功率,C代表權(quán)值基數(shù),為一個設(shè)定好的整數(shù),W_代表最高權(quán)值,為一個預(yù)設(shè)的 大于1的整數(shù)。
[0038] 在本發(fā)明所述的用于后臺集群服務(wù)的負(fù)載均衡分配代理中,所述權(quán)值修正模塊還 包括:
[0039] 權(quán)值修正子單元,用于在進(jìn)入每個時間區(qū)間之前讀取配置信息,并根據(jù)配置信息 將集群服務(wù)的集群數(shù)量增加所對應(yīng)的服務(wù)器的權(quán)值設(shè)定為1,將集群服務(wù)的集群數(shù)量減小 所對應(yīng)的服務(wù)器在負(fù)載分配模塊中從所有的服務(wù)器中直接刪除。
[0040] 本發(fā)明還公開了一種用于后臺集群服務(wù)的負(fù)載均衡分配系統(tǒng),包括中心配置服務(wù) 模塊和至少一個邊緣業(yè)務(wù)服務(wù)模塊;其中,所述中心配置服務(wù)模塊包括:配置數(shù)據(jù)庫、負(fù)載 均衡中心單元、配置管理服單元;所述邊緣業(yè)務(wù)服務(wù)模塊包括:如上所述的負(fù)載均衡分配 代理、業(yè)務(wù)單元、配置文件;
[0041] 所述配置管理服單元用于對配置信息進(jìn)行統(tǒng)一修改并保存至配置數(shù)據(jù)庫中;所述 負(fù)載均衡中心單元用于負(fù)載均衡數(shù)據(jù)的管理,處理負(fù)載均衡分配代理的配置讀取請求和接 口數(shù)據(jù)統(tǒng)計(jì);所述負(fù)載均衡分配代理用于從負(fù)載均衡中心單元讀取配置和上報(bào)數(shù)據(jù)統(tǒng)計(jì), 管理本地配置文件并寫入共享內(nèi)存,為連接請求分配服務(wù)器;業(yè)務(wù)單元通過與負(fù)載均衡分 配代理交互獲得最優(yōu)的目的服務(wù)器信息,并將業(yè)務(wù)請求分發(fā)到相應(yīng)的目的服務(wù)器。
[0042] 實(shí)施本發(fā)明的用于后臺集群服務(wù)的負(fù)載均衡分配方法、代理及系統(tǒng),具有以下有 益效果:本發(fā)明以一個時間區(qū)間為基本單位,根據(jù)在該時間區(qū)間內(nèi)各個服務(wù)器的響應(yīng)時間 和成功率,對各個服務(wù)器的權(quán)值進(jìn)行一次動態(tài)修正,響應(yīng)時間和成功率實(shí)質(zhì)上反應(yīng)了各個 服務(wù)器的在網(wǎng)絡(luò)、服務(wù)器環(huán)境及軟件服務(wù)的實(shí)際情況的這些因素影響下的實(shí)際性能,因此, 本發(fā)明對權(quán)值的動態(tài)修整可以實(shí)現(xiàn)在各服務(wù)器性能有差異性的環(huán)境下最大化使用所有服 務(wù)器的處理能力,并能根據(jù)網(wǎng)絡(luò)、服務(wù)器環(huán)境及軟件服務(wù)的實(shí)際情況進(jìn)行自適應(yīng)調(diào)整使請 求得到最優(yōu)的分發(fā)。
【附圖說明】
[0043] 下面將結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步說明,附圖中:
[0044] 圖1是本發(fā)明用于后臺集群服務(wù)的負(fù)載均衡分配方法的流程圖;
[0045] 圖2是圖1中步驟S2的流程圖;
當(dāng)前第1頁
1 
2 
3