本發(fā)明涉及一種同步系統(tǒng)和方法,特別是一種基于云主機(jī)的多集群緩存信息同步系統(tǒng)和方法。
背景技術(shù):
隨著公有云的便捷以及價(jià)格越來越低,越來越多的中小公司,特別是創(chuàng)業(yè)公司使用公有云來架設(shè)他們的云端系統(tǒng).以往的集群同步絕大多數(shù)都是在同一個(gè)云環(huán)境下多主機(jī)緩存信息同步,這種環(huán)境下主機(jī)間通過局域網(wǎng)通信,網(wǎng)絡(luò)穩(wěn)定性、帶寬都有充足的保障,可以比較方便的實(shí)施同步方案。但在涉及到多公有云多集群間的緩存信息同步方法則非常少,特別是跨地區(qū)跨云服務(wù)上的應(yīng)用環(huán)境下,只有少數(shù)有實(shí)力的大公司實(shí)用專屬光纖或者VPN保證網(wǎng)絡(luò)通道的穩(wěn)定和低延遲。但是,廣大中小公司在跨地區(qū)跨云服務(wù)上普通網(wǎng)絡(luò)環(huán)境下多集群間緩存信息存在證穩(wěn)定性和延遲比較嚴(yán)重的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的提供一種基于云主機(jī)的多集群緩存信息同步系統(tǒng),實(shí)現(xiàn)了多集群件緩存信息同步的穩(wěn)定性。
為解決現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種基于云主機(jī)的多集群緩存信息同步系統(tǒng),該系統(tǒng)包括:控制中心、云網(wǎng)絡(luò)、多個(gè)獨(dú)立集群,所述多個(gè)獨(dú)立集群與所述控制中心通過云網(wǎng)絡(luò)連接,所述控制中心存儲(chǔ)有所有加入該同步系統(tǒng)的獨(dú)立集群的注冊信息,所述注冊信息包括各獨(dú)立集群的IP地址信息;所述多個(gè)獨(dú)立集群之間通過周期性通訊,獲取已注冊獨(dú)立集群的IP地址信息,以確認(rèn)對方的當(dāng)前狀態(tài);所述多個(gè)獨(dú)立集群之間通過傳輸控制協(xié)議通信,形成網(wǎng)狀結(jié)構(gòu),相互同步緩存信息。
另外,還包括:管理客戶終端,用于接收所述控制中心在判斷已注冊的獨(dú)立集群在預(yù)設(shè)的時(shí)間內(nèi)與其通信時(shí),發(fā)送的報(bào)警信息。
相應(yīng)的本發(fā)明還提供一種基于云主機(jī)的多集群緩存信息同步方法,方法應(yīng)用于基于云主機(jī)的多集群緩存信息同步系統(tǒng)該系統(tǒng)的集群至少包括,申請加入該同步系統(tǒng)的第一集群、已注冊的第二集群,其特征在于,包括如下步驟:
第一集群向控制中心發(fā)送請求信息,申請加入同步系統(tǒng);
控制中心接收所述請求信息,并存儲(chǔ)所述第一集群的注冊信息,所述注冊信息包括所述第一集群的IP地址信息;
已注冊的第二集群通過周期性心跳獲取所述第一集群的IP地址信息,并將所述IP地址信息存儲(chǔ)至緩存服務(wù)器列表中,與第一集群建立連接;
已注冊的第二集群通過傳輸控制協(xié)議與所述第一集群進(jìn)行通信,并將其緩存信息完整同步到所述第一集群。
所述的已注冊的第二集群通過傳輸控制協(xié)議與所述第一集群進(jìn)行通信,并將其緩存信息完整同步到所述第一集群的步驟,具體包括:
需要同步緩存信息的第二集群向所述第一集群發(fā)送同步所有的緩存信息的請求;
所述第一集群接收所述同步請求后,生成緩存文件,并將所述緩存文件返回給所述需要同步緩存信息的已注冊集群;
所述第二集群接收所述第一集群反饋的緩存文件,并存儲(chǔ)所述第一集群緩存信息的同步偏移量;
所述第二集群向所述第一集群反饋緩存信息同步已完成的命令。
還包括:所述第二集群與所述第一集群通信,更新已同步的緩存信息。
所述的第二集群與所述第一集群通信,更新已同步的緩存信息的步驟,具體包括:
所述第二集群向所述第一集群發(fā)送更新同步請求命令,所述命令攜帶同步緩存信息時(shí)存儲(chǔ)的偏移量;
所述第一集群接收所述請求命令,并從本地緩存增量副本中讀取所述同步偏移量后的內(nèi)容,并發(fā)送給所述第二集群;
所述第二集群接收來自所述第一集群的信息后,向所述第一集群反饋緩存信息更新已完成的命令。
另外,還包括:若所述第二集群與所述第一集群之間的網(wǎng)絡(luò)發(fā)生故障,所述增量副本區(qū)的同步偏移量后內(nèi)容已經(jīng)被覆蓋,則向第一集群發(fā)送第一集群中本地完整緩存存儲(chǔ)的緩存信息。
另外,所述第一集群與所述第二集群之間交互的信息為使用私有密鑰加密處理的信息。
另外,還包括:所述控制中心判斷已注冊的獨(dú)立集群在預(yù)設(shè)的時(shí)間內(nèi)是否與其通信,并在判斷為是否,向客戶終端發(fā)送報(bào)警信息。
本發(fā)明的基于云主機(jī)的多集群緩存信息同步系統(tǒng),通過控制中心存儲(chǔ)所有加入該同步系統(tǒng)的獨(dú)立集群的注冊信息,另外,多個(gè)獨(dú)立的集群通過周期性通訊,獲取其他已注冊獨(dú)立集群的IP地址信息;再結(jié)合多個(gè)集群通過傳輸控制協(xié)議通信,形成網(wǎng)狀的網(wǎng)絡(luò)結(jié)構(gòu),因此即使采用公有網(wǎng)絡(luò)進(jìn)行通信,也能夠保證同步系統(tǒng)的穩(wěn)定性和低延遲性。另外,采用共有的云網(wǎng)絡(luò),避免了鋪設(shè)或租用專線,降低了成本。
附圖說明
圖1是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的第一種實(shí)施例的示意圖;
圖2是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的獨(dú)立集群的具體實(shí)現(xiàn)示意圖;
圖3是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的多個(gè)集群連接網(wǎng)絡(luò)的示意圖;
圖4是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的第二種實(shí)施例的示意圖;
圖5是本發(fā)明基于云主機(jī)的多集群緩存信息同步方法的第一種實(shí)施例的流程示意圖;
圖6是本發(fā)明基于云主機(jī)的多集群緩存信息同步方法的第一實(shí)施例的步驟S54的具體實(shí)現(xiàn)流程示意圖;
圖7是本發(fā)明基于云主機(jī)的多集群緩存信息同步方法實(shí)施例中的更新同步信息的流程示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明實(shí)施例進(jìn)行詳細(xì)說明。
參考圖1,該圖是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的第一種實(shí)施例的示意圖,該系統(tǒng)包括:
包括控制中心1、多個(gè)獨(dú)立集群2以及云網(wǎng)絡(luò)(圖中為未標(biāo)示),多個(gè)獨(dú)立集群與控制中心通過云網(wǎng)絡(luò)連接,控制中心存儲(chǔ)有加入該同步系統(tǒng)的獨(dú)立集群的注冊信息,該注冊信息包括各獨(dú)立集群的IP地址信息;多個(gè)獨(dú)立集群通過周期性心跳,獲取其他已注冊獨(dú)立集群的IP地址信息;多個(gè)獨(dú)立集群之間通過傳輸控制協(xié)議通訊,相互同步緩存信息。
其中,新的獨(dú)立集群要加入多集群緩存信息同步系統(tǒng)則需要通過監(jiān)控管理系統(tǒng)(控制中心)注冊該集群信息,該注冊信息包括該集群ID,緩存主備服務(wù)器ip地址端口,這樣管理系統(tǒng)上就保存了所有加入該同步系統(tǒng)的獨(dú)立集群信息,獨(dú)立集群通過周期性心跳,即獨(dú)立集群與監(jiān)控管理系統(tǒng)進(jìn)行周期性通訊,從管理系統(tǒng)上獲取到所有集群的ip地址等信息。之后緩存信息同步系統(tǒng)中的集群,使用Tcp短鏈接,從而增加了同步系統(tǒng)的穩(wěn)定性。
參考圖2,該圖是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的獨(dú)立集群的具體實(shí)現(xiàn)示意圖;該獨(dú)立集群包括:本地緩存21、全局緩存22、本地緩存增量副本23和其他緩存服務(wù)器列表24;其中,本地緩存,用于存儲(chǔ)在緩存單個(gè)節(jié)點(diǎn)的緩存信息;全局緩存,用于存儲(chǔ)獨(dú)立集群的所有緩存信息;本地緩存增量副本,用于存儲(chǔ)當(dāng)前緩存相較上次同步更改的信息;其他緩存服務(wù)器列表,用于存儲(chǔ)其他緩存服務(wù)器的信息。
另外,考慮到多集群節(jié)點(diǎn)數(shù)不會(huì)太多(一般10個(gè)以內(nèi))以及公網(wǎng)網(wǎng)路的不穩(wěn)定型,本發(fā)明實(shí)施例中的各個(gè)集群間通過網(wǎng)狀結(jié)構(gòu)進(jìn)行連接。參考圖3所示,集群1、集群2、集群3和集群4共同構(gòu)成網(wǎng)狀結(jié)構(gòu),從而保證了緩存信息同步系統(tǒng)的穩(wěn)定性。另外,每個(gè)集群都周期性的向管理系統(tǒng)獲取整個(gè)同步環(huán)境下的多集群信息,更新其他緩存服務(wù)器信息列表。
參考圖4,該圖是本發(fā)明基于云主機(jī)的多集群緩存信息同步系統(tǒng)的第二種實(shí)施例的示意圖,與第一實(shí)施例不同的是,本實(shí)施例還包括:管理客戶終端41,該客戶終端用于接收云主機(jī)發(fā)出的報(bào)警信息,該報(bào)警信息為云主機(jī)在判斷已注冊的獨(dú)立集群,在預(yù)設(shè)的時(shí)間間隔內(nèi)沒有與其進(jìn)行通信時(shí)發(fā)出的報(bào)警信息,該處所說的預(yù)設(shè)時(shí)間間隔可以根據(jù)實(shí)際情況進(jìn)行設(shè)定,一般與獨(dú)立集群的周期性時(shí)間間隔一致,在此不進(jìn)行贅述。另外,當(dāng)有集群需要加入或脫離整個(gè)同步系統(tǒng)時(shí),通過客戶端向管理系統(tǒng)設(shè)置變更集群信息。
參考圖5,該圖是本發(fā)明一種基于云主機(jī)的多集群緩存信息同步方法的第一種實(shí)施例的流程示意圖,為了說明方便,將申請加入該同步系統(tǒng)的集群稱為第一集群,獲取該第一集群信息的集群稱為第二集群,已該方法包括如下步驟:
步驟S51,第一集群向云主機(jī)發(fā)送請求信息,申請加入同步系統(tǒng);
步驟S52,云主機(jī)接收該請求信息,并存儲(chǔ)第一集群的注冊信息,該注冊信息包括第一集群的IP地址信息,另外,該注冊信息中還可以包括該第一集群的集群ID;
步驟S53,已注冊的第二集群通過周期性心跳獲取第一集群的IP地址信息,并將IP地址信息存儲(chǔ)至緩存服務(wù)器列表中;
步驟S54,已注冊的第二集群通過傳輸控制協(xié)議(TCP)與第一集群進(jìn)行通信,并將其緩存信息完整同步到所述第一集群。
另外,具體實(shí)現(xiàn)時(shí)還包括:第二集群與第一集群通信,更新已同步的緩存信息的步驟。
下面以集群B表示第二集群,以集群A表示第一集群為例,對圖5中的步驟S54進(jìn)行詳細(xì)說明,參考圖6,該圖是本發(fā)明基于云主機(jī)的多集群緩存信息同步方法的第一實(shí)施例的步驟S54的具體實(shí)現(xiàn)流程示意圖,其包括:
步驟S61,集群A向集群B發(fā)送SYNC_ALL請求命令;
步驟S62,集群B收到來自集群A發(fā)送的SYNC_ALL請求命令后,執(zhí)行CASHSAVE命令,在后臺(tái)生成一個(gè)緩存文件,并將緩存文件發(fā)送給集群A;
步驟S63,集群A收到響應(yīng)后,記錄本次同步過程中集群B的偏移量OFFSET,返回同步完成SYNC_OK命令。
下面對集群A更新同步的過程進(jìn)行說明,參考圖7,該圖是本發(fā)明基于云主機(jī)的多集群緩存信息同步方法的更新同步信息的流程示意圖,該流程包括如下步驟:
步驟S71,集群A向集群B發(fā)送SYN_CON請求命令,該同步命令中攜帶集群A存儲(chǔ)的,上次同步集群B的偏移量OFFSET;
步驟S72,集群B收到請求后從本地緩存增量副本區(qū)讀取OFFSET后的內(nèi)容,發(fā)送給集群A;
步驟S73,集群A收到后返回SYNC_OK。
需要說明的,在步驟S72中如果集群A、集群B之間網(wǎng)絡(luò)發(fā)生故障,間隔時(shí)間較長,本地增量副本區(qū)OFFSET后內(nèi)容已經(jīng)被覆蓋,則向集群A發(fā)送本地完整緩存;另外,整個(gè)同步過程中數(shù)據(jù)都是使用私有密鑰加密處理,保證數(shù)據(jù)的安全性,并且完整同步時(shí)的數(shù)據(jù)經(jīng)過壓縮處理,提高了傳輸效率。
另外,在具體實(shí)現(xiàn)時(shí),云主機(jī)將判斷已注冊的獨(dú)立集群在預(yù)設(shè)的時(shí)間內(nèi)是否與其通信,若是,則繼續(xù)保持監(jiān)控狀態(tài),否則,向管理客戶終端發(fā)送報(bào)警信息,以告知管理客戶獨(dú)立集群處于異常狀態(tài),可以使管理客戶及時(shí)響應(yīng)異常問題并進(jìn)行處理。
需要說明的,本發(fā)明實(shí)施例中的控制中心、多個(gè)獨(dú)立集群設(shè)置在云主機(jī)內(nèi),云主機(jī)的數(shù)量也可以為多個(gè),而控制中心在實(shí)際應(yīng)用中表現(xiàn)為設(shè)置于云主機(jī)內(nèi)的監(jiān)控管理系統(tǒng)。
本發(fā)明實(shí)施例的同步系統(tǒng)采用云主機(jī)對多個(gè)不同集群進(jìn)行監(jiān)控,不同集群之間建立網(wǎng)狀結(jié)構(gòu),通過TCP建立短鏈接,實(shí)現(xiàn)了在不穩(wěn)定的公有云網(wǎng)絡(luò)中進(jìn)行穩(wěn)定的同步信息,并且打破了區(qū)域以及不同云服務(wù)商的限制,擴(kuò)展了業(yè)務(wù)的區(qū)域輻射性和相應(yīng)速度。另外利用公有云網(wǎng)絡(luò),避免了鋪設(shè)、租用專線的高昂的費(fèi)用。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。