本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)通信,具體地說是一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的方法及系統(tǒng)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的日益發(fā)展以及多媒體應(yīng)用的普及,在一對多的網(wǎng)絡(luò)通信場景中相對于單播和廣播通信模式,組播通信模式可以幫助減輕服務(wù)器負(fù)載并提高帶寬的利用率。而互聯(lián)網(wǎng)組管理協(xié)議(internet?group?management?protocol,簡稱igmp)作為ipv4網(wǎng)絡(luò)中組播的關(guān)鍵組件,扮演著不可或缺的角色。igmp(internet?group?management?protocol)互聯(lián)網(wǎng)組管理協(xié)議是tcp/ip協(xié)議族中負(fù)責(zé)ip組播成員管理的協(xié)議,用來在ip主機(jī)和與其直接相鄰的組播路由器之間建立、維護(hù)組播組成員關(guān)系。
2、組播技術(shù)是ip網(wǎng)絡(luò)數(shù)據(jù)傳輸三種方式之一,組播方式解決了單播情況下報文重復(fù)拷貝及帶寬的重復(fù)占用的問題,也解決了廣播方式下帶寬資源的浪費(fèi)問題。常常應(yīng)用于在線直播、視頻會議、金融交易行情數(shù)據(jù)同步、遠(yuǎn)程教育和網(wǎng)絡(luò)電視等一對多網(wǎng)絡(luò)通信場景。
3、為了聯(lián)通云內(nèi)外組播源與組播接收者網(wǎng)絡(luò),vpc組播應(yīng)運(yùn)而生。而vpc組播中轉(zhuǎn)網(wǎng)關(guān)作為打通云內(nèi)外網(wǎng)絡(luò)的橋梁需要保證高可用以及自愈性,如何保證vpc組播的高可用以及自愈性是目前行業(yè)內(nèi)面臨及研究的問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的方法及系統(tǒng),能夠監(jiān)控多實(shí)例模式下vpc組播中轉(zhuǎn)網(wǎng)關(guān)健康狀態(tài),分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)并選擇合適的主備切換模式,保證了vpc的組播中轉(zhuǎn)網(wǎng)關(guān)的高可用性和自愈性。
2、本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
3、一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的方法,包括:
4、定時觸發(fā)vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)監(jiān)控:由定時任務(wù)觸發(fā),在多實(shí)例模式下通過業(yè)務(wù)鎖的方式保證每個vpc組播同時只能由一個實(shí)例鎖定,獲取到鎖的實(shí)例將開啟子線程執(zhí)行分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)和vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換;
5、分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài):查詢vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)、分析統(tǒng)計每種狀態(tài)類型,用于統(tǒng)計當(dāng)前vpc組播中轉(zhuǎn)網(wǎng)關(guān)集群中存活網(wǎng)關(guān)數(shù)量、故障網(wǎng)關(guān)數(shù)量、主網(wǎng)關(guān)數(shù)量、備份網(wǎng)關(guān)數(shù)量、總網(wǎng)關(guān)數(shù)量,為vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換模塊提供數(shù)據(jù)依據(jù);
6、vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換:依據(jù)分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)模塊提供的統(tǒng)計,進(jìn)行主備場景的處理,包括一主一備模式、雙主或雙備份模式、主備故障模式、主備單點(diǎn)故障模式。
7、該方法實(shí)時監(jiān)控vpc組播中轉(zhuǎn)網(wǎng)關(guān)健康狀態(tài),減少運(yùn)維成本;提供智能分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)所屬模式的方法,實(shí)時發(fā)現(xiàn)故障網(wǎng)關(guān)并進(jìn)行主備切換,保障組播業(yè)務(wù)流量轉(zhuǎn)發(fā)不中斷;該方法能夠全面覆蓋vpc組播中轉(zhuǎn)網(wǎng)關(guān)實(shí)際場景和解決方案,快速定位故障網(wǎng)關(guān),智能分析網(wǎng)關(guān)模式,保障網(wǎng)關(guān)高可用性和自愈性。同時,該方法采用業(yè)務(wù)鎖的方式,保障多實(shí)例模式下vpc組播網(wǎng)關(guān)數(shù)據(jù)的準(zhǔn)確性。
8、進(jìn)一步的,所述定時觸發(fā)vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)監(jiān)控,包括狀態(tài)監(jiān)控定時任務(wù)觸發(fā)和vpc組播加鎖,實(shí)現(xiàn)多實(shí)例模式下的只有一個實(shí)例執(zhí)行某個vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)監(jiān)控的功能,下面進(jìn)行更詳細(xì)的說明:
9、所述狀態(tài)監(jiān)控定時任務(wù)觸發(fā):
10、每個實(shí)例由定時任務(wù)控制狀態(tài)監(jiān)控功能的調(diào)度;
11、狀態(tài)監(jiān)控功能中會獲取到所有vpc組播集合;
12、循環(huán)vpc組播集合,將每個vpc組播放入到線程池;
13、所述vpc組播加鎖:
14、線程池中某個子線程執(zhí)行某個vpc組播是否加鎖校驗(yàn),校驗(yàn)方式為根據(jù)組播id去查詢業(yè)務(wù)鎖表是否存在數(shù)據(jù);
15、如果vpc組播已被加鎖,則代表該vpc組播已被其他實(shí)例鎖定,本次不能對該vpc組播中轉(zhuǎn)網(wǎng)關(guān)進(jìn)行監(jiān)控處理;
16、如果vpc組播未加鎖,則添加業(yè)務(wù)鎖記錄,由該實(shí)例鎖定該vpc組播。
17、獲取到vpc組播鎖的實(shí)例就可以繼續(xù)執(zhí)行下面的兩個功能模塊。
18、進(jìn)一步的,所述每個實(shí)例由定時任務(wù)控制狀態(tài)監(jiān)控功能的調(diào)度,一分鐘一次。
19、進(jìn)一步的,所述分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài),具體實(shí)現(xiàn)步驟如下:
20、1)獲取到vpc組播中轉(zhuǎn)網(wǎng)關(guān)數(shù)據(jù)庫記錄集合,并循環(huán):
21、調(diào)用中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)接口獲取中轉(zhuǎn)網(wǎng)關(guān)底層狀態(tài),并進(jìn)行分析:
22、如果狀態(tài)為main,則主網(wǎng)關(guān)數(shù)量加一、存活網(wǎng)關(guān)數(shù)量加一、總網(wǎng)關(guān)數(shù)量加一;
23、如果狀態(tài)為backup,則備份網(wǎng)關(guān)數(shù)量加一、存活網(wǎng)關(guān)數(shù)量加一、總網(wǎng)關(guān)數(shù)量加一;
24、如果狀態(tài)為空,則故障網(wǎng)關(guān)數(shù)量加一、總網(wǎng)關(guān)數(shù)量加一;
25、2)分析該vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)所屬類型,判定條件如下:
26、一主一備模式:存活網(wǎng)關(guān)數(shù)量等于總網(wǎng)關(guān)數(shù)量,且主網(wǎng)關(guān)數(shù)量大于0,且備份網(wǎng)關(guān)數(shù)量大于0;
27、雙主或雙備份模式:存活網(wǎng)關(guān)數(shù)量等于總網(wǎng)關(guān)數(shù)量,且主網(wǎng)關(guān)數(shù)量或者備份網(wǎng)關(guān)數(shù)量等于總網(wǎng)關(guān)數(shù)量;
28、主備故障模式:故障網(wǎng)關(guān)數(shù)量等于總網(wǎng)關(guān)數(shù)量;
29、主備單點(diǎn)故障模式:故障網(wǎng)關(guān)數(shù)量大于0并且故障網(wǎng)關(guān)數(shù)量小于總網(wǎng)關(guān)數(shù)量。
30、進(jìn)一步的,所述vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換,根據(jù)網(wǎng)關(guān)狀態(tài)所屬類型,進(jìn)行相應(yīng)的主備切換模式處理,具體實(shí)現(xiàn)如下:
31、一主一備模式:
32、如果當(dāng)前網(wǎng)關(guān)類型與數(shù)據(jù)庫網(wǎng)關(guān)類型一致,且數(shù)據(jù)庫狀態(tài)為可用,不做處理;
33、如果當(dāng)前網(wǎng)關(guān)類型與數(shù)據(jù)庫網(wǎng)關(guān)類型不一致,按底層刷新數(shù)據(jù)庫中網(wǎng)關(guān)類型與狀態(tài);
34、雙主或雙備份模式:
35、重新選擇主備,下發(fā)主備分配,更新數(shù)據(jù)庫網(wǎng)關(guān)類型與狀態(tài)。
36、主備故障模式:
37、更新數(shù)據(jù)庫網(wǎng)關(guān)狀態(tài)為故障中;
38、主備單點(diǎn)故障模式:
39、如果當(dāng)前網(wǎng)關(guān)故障,更新數(shù)據(jù)庫網(wǎng)關(guān)狀態(tài)為故障中;
40、如果當(dāng)前網(wǎng)關(guān)沒有故障且類型為備份網(wǎng)關(guān),則對該網(wǎng)關(guān)下發(fā)主網(wǎng)關(guān)配置并更新數(shù)據(jù)庫;
41、如果當(dāng)前網(wǎng)關(guān)沒有故障且類型為主網(wǎng)關(guān),則不做處理;
42、不管執(zhí)行哪一種模式,最后都釋放vpc組播的業(yè)務(wù)鎖,以便下次定時任務(wù)繼續(xù)監(jiān)控vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)。
43、進(jìn)一步的,該方法的具體實(shí)現(xiàn)步驟如下:
44、步驟一:vpc組播監(jiān)控定時任務(wù)啟動;
45、步驟二:獲取到所有的vpc組播,并分別將每個vpc組播放入線程池,每個vpc組播主備切換功能由獨(dú)立的子線程執(zhí)行;
46、步驟三:校驗(yàn)子線程中的vpc組播是否可以加鎖,如果加鎖失敗,則退出本次定時任務(wù);
47、步驟四:如果vpc組播加鎖成功,則分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)并統(tǒng)計數(shù)量;
48、步驟五:根據(jù)vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)統(tǒng)計數(shù)據(jù),按相應(yīng)模式執(zhí)行對應(yīng)的主備切換邏輯;
49、步驟六:釋放掉vpc組播的業(yè)務(wù)鎖;
50、步驟七:等待下次定時任務(wù)啟動,重復(fù)步驟一到步驟六的處理。
51、本發(fā)明還要求保護(hù)一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的系統(tǒng),包括:
52、定時觸發(fā)vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)監(jiān)控模塊,該模塊由定時任務(wù)觸發(fā),在多實(shí)例模式下通過業(yè)務(wù)鎖的方式保證每個vpc組播同時只能由一個實(shí)例鎖定,獲取到鎖的實(shí)例將開啟子線程執(zhí)行分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)和vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換;
53、分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)模塊,查詢vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)、分析統(tǒng)計每種狀態(tài)類型,用于統(tǒng)計當(dāng)前vpc組播中轉(zhuǎn)網(wǎng)關(guān)集群中存活網(wǎng)關(guān)數(shù)量、故障網(wǎng)關(guān)數(shù)量、主網(wǎng)關(guān)數(shù)量、備份網(wǎng)關(guān)數(shù)量、總網(wǎng)關(guān)數(shù)量,為vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換模塊提供數(shù)據(jù)依據(jù);
54、vpc組播中轉(zhuǎn)網(wǎng)關(guān)執(zhí)行主備切換模塊,依據(jù)分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)模塊提供的統(tǒng)計,進(jìn)行主備場景的處理,包括一主一備模式、雙主或雙備份模式、主備故障模式、主備單點(diǎn)故障模式;
55、該系統(tǒng)通過上述的多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的方法實(shí)現(xiàn)vpc組播主備切換。
56、進(jìn)一步的,所述定時任務(wù)為一分鐘一次。
57、本發(fā)明還要求保護(hù)一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的裝置,包括:至少一個存儲器和至少一個處理器;
58、所述至少一個存儲器,用于存儲機(jī)器可讀程序;
59、所述至少一個處理器,用于調(diào)用所述機(jī)器可讀程序,實(shí)現(xiàn)上述的方法。
60、本發(fā)明還要求保護(hù)計算機(jī)可讀介質(zhì),所述計算機(jī)可讀介質(zhì)上存儲有計算機(jī)指令,所述計算機(jī)指令在被處理器執(zhí)行時,使所述處理器執(zhí)行上述的方法。
61、本發(fā)明的一種多實(shí)例模式下實(shí)現(xiàn)vpc組播主備切換的方法及系統(tǒng)與現(xiàn)有技術(shù)相比,具有以下有益效果:
62、1、實(shí)時監(jiān)控所有的vpc組播中轉(zhuǎn)網(wǎng)關(guān)的健康狀態(tài)。
63、2、智能分析vpc組播中轉(zhuǎn)網(wǎng)關(guān)狀態(tài)所屬模式。
64、3、快速對異常網(wǎng)關(guān)進(jìn)行主備切換處理,保障組播場景業(yè)務(wù)不中斷。
65、4、提升了vpc組播中轉(zhuǎn)網(wǎng)關(guān)的高可用性和自愈性。
66、5、全面覆蓋vpc組播中轉(zhuǎn)網(wǎng)關(guān)實(shí)際場景和解決方案。