本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用組切換方法及裝置。
背景技術(shù):
目前,在負(fù)載均衡廠商中,為了防止設(shè)備單點(diǎn)故障導(dǎo)致用戶業(yè)務(wù)癱瘓,都會(huì)提供一種設(shè)備容災(zāi)方案。常見的容災(zāi)方案主要是雙機(jī)模型(如圖1所述),在雙機(jī)模型中,一臺(tái)設(shè)備作為主機(jī)(圖1中的ad1)提供服務(wù),另一臺(tái)設(shè)備作為備機(jī)(圖1中的ad2)不提供服務(wù),只備份主機(jī)的配置與業(yè)務(wù),當(dāng)主機(jī)發(fā)生故障時(shí),備機(jī)切換為主機(jī),接替原主機(jī)的服務(wù)。
但隨著用戶的業(yè)務(wù)不斷發(fā)展,傳統(tǒng)的雙機(jī)模型逐漸暴露出以下缺點(diǎn):
1、備機(jī)長(zhǎng)時(shí)間處于不工作狀態(tài),導(dǎo)致其硬件資源白白被浪費(fèi)掉;
2、由于所有業(yè)務(wù)服務(wù)都只在主機(jī)設(shè)備上提供,那么整體的服務(wù)性能與業(yè)務(wù)擴(kuò)展都受限于主機(jī)的單機(jī)性能,不利于用戶擴(kuò)展自身的業(yè)務(wù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種應(yīng)用組切換方法及裝置,旨在解決傳統(tǒng)的業(yè)務(wù)切換采用雙機(jī)模型,容易導(dǎo)致備機(jī)的硬件資源浪費(fèi)以及不利于拓展業(yè)務(wù)的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種應(yīng)用組切換方法,所述方法應(yīng)用于包括多個(gè)設(shè)備的集群中,所述集群中的應(yīng)用服務(wù)根據(jù)業(yè)務(wù)類型被分成不同的應(yīng)用組,所述應(yīng)用組切換方法包括:
集群中的主控設(shè)備將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī);
在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
優(yōu)選地,所述集群包括管理口和心跳ha口,所述集群中的各個(gè)設(shè)備通過(guò)所述管理口和所述ha口提供的心跳線互相發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),并根據(jù)心跳包攜帶主控設(shè)備的選舉信息以選擇主控設(shè)備。
優(yōu)選地,對(duì)集群中的應(yīng)用組分配主機(jī)及/或備機(jī)的方式包括:
所述主控設(shè)備確定集群中是否存在默認(rèn)的主機(jī)及/或備機(jī);
若存在,將默認(rèn)的主機(jī)及/或備機(jī)作為應(yīng)用組的主機(jī)及/或備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)及/或備機(jī)。
優(yōu)選地,所述對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī)的步驟之后,所述應(yīng)用組切換方法還包括:
所述主控設(shè)備將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至同一個(gè)應(yīng)用組的備機(jī)中,以使同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步;
在同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中。
優(yōu)選地,所述在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中的步驟之前,所述應(yīng)用組切換方法還包括:
所述主控設(shè)備實(shí)時(shí)監(jiān)測(cè)各個(gè)主機(jī)上報(bào)的鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息;
若所述主控設(shè)備監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),認(rèn)為所述應(yīng)用組的主機(jī)故障。
優(yōu)選地,所述集群中的各個(gè)應(yīng)用組使用虛擬物理地址,所述在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),所述應(yīng)用組切換方法還包括:
所述主控設(shè)備將應(yīng)用組的虛擬物理地址從主機(jī)遷移至備機(jī)中,以使切換前后的應(yīng)用組的地址保持不變。
此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種應(yīng)用組切換裝置,所述裝置應(yīng)用于包括多個(gè)設(shè)備的集群中,所述集群中的應(yīng)用服務(wù)根據(jù)業(yè)務(wù)類型被分成不同的應(yīng)用組,所述應(yīng)用組切換裝置包括:
分配模塊,用于將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
選擇模塊,用于對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī);
切換模塊,用于在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
優(yōu)選地,所述集群包括管理口和心跳ha口,所述集群中的各個(gè)設(shè)備通過(guò)所述管理口和所述ha口提供的心跳線互相發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),并根據(jù)心跳包攜帶主控設(shè)備的選舉信息以選擇主控設(shè)備。
優(yōu)選地,對(duì)集群中的應(yīng)用組分配主機(jī)及/或備機(jī)的方式包括:
確定集群中是否存在默認(rèn)的主機(jī)及/或備機(jī);
若存在,將默認(rèn)的主機(jī)及/或備機(jī)作為應(yīng)用組的主機(jī)及/或備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)及/或備機(jī)。
優(yōu)選地,所述應(yīng)用組切換裝置還包括:
同步模塊,用于將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至同一個(gè)應(yīng)用組的備機(jī)中,以使同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步;
啟動(dòng)模塊,用于在同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中。
優(yōu)選地,所述應(yīng)用組切換裝置還包括:
監(jiān)測(cè)模塊,用于實(shí)時(shí)監(jiān)測(cè)各個(gè)主機(jī)上報(bào)的鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息;
處理模塊,用于若監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),認(rèn)為所述應(yīng)用組的主機(jī)故障。
優(yōu)選地,所述集群中的各個(gè)應(yīng)用組使用虛擬物理地址,所述在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),所述應(yīng)用組切換裝置還包括:
遷移模塊,用于將應(yīng)用組的虛擬物理地址從主機(jī)遷移至備機(jī)中,以使切換前后的應(yīng)用組的地址保持不變。
本發(fā)明提出的應(yīng)用組切換方法及裝置,集群中的主控設(shè)備先將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī),然后對(duì)對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),后續(xù)在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。本方案中,充分利用集群中的每臺(tái)設(shè)備發(fā)布不同的應(yīng)用服務(wù),同時(shí)各臺(tái)設(shè)備能互為備機(jī),當(dāng)某個(gè)應(yīng)用組的備機(jī)在主機(jī)故障的情況下,能接替主機(jī)繼續(xù)提供服務(wù),而在主機(jī)沒(méi)有故障的情況下,備機(jī)自己作為另一個(gè)應(yīng)用組的主機(jī)也能繼續(xù)提供服務(wù),不會(huì)導(dǎo)致硬件資源的浪費(fèi),此外,集群中的各個(gè)設(shè)備都能提供服務(wù),不限于主機(jī)提供服務(wù),有利于集群中業(yè)務(wù)服務(wù)的拓展。
附圖說(shuō)明
圖1為現(xiàn)有的業(yè)務(wù)切換架構(gòu)圖;
圖2為本發(fā)明應(yīng)用組切換方法第一實(shí)施例的流程示意圖;
圖3為本發(fā)明的集群架構(gòu)圖;
圖4為應(yīng)用組切換的示意圖;
圖5為本發(fā)明應(yīng)用組切換方法第二實(shí)施例的流程示意圖;
圖6a-6b為主備機(jī)連接跟蹤同步和會(huì)話同步的示意圖;
圖7為本發(fā)明應(yīng)用組切換方法第三實(shí)施例的流程示意圖;
圖8為本發(fā)明應(yīng)用組切換裝置第一實(shí)施例的功能模塊示意圖;
圖9為本發(fā)明應(yīng)用組切換裝置第二實(shí)施例的功能模塊示意圖;
圖10為本發(fā)明應(yīng)用組切換裝置第三實(shí)施例的功能模塊示意圖。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例的解決方案主要是:集群中的主控設(shè)備先將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī),然后對(duì)分配有主機(jī)的應(yīng)用組,在集群中選擇除所述主機(jī)以外的任一設(shè)備作為應(yīng)用組的備機(jī),后續(xù)在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。以解決傳統(tǒng)的業(yè)務(wù)切換采用雙機(jī)模型,容易導(dǎo)致備機(jī)的硬件資源浪費(fèi),以及不利于拓展業(yè)務(wù)的技術(shù)問(wèn)題。
專業(yè)術(shù)語(yǔ)介紹:
高可用集群:將多臺(tái)負(fù)載均衡設(shè)備組合起來(lái)為用戶提供服務(wù),充分利用集群中的每一臺(tái)設(shè)備,發(fā)布不同的服務(wù),同時(shí)能互為備份,保證故障發(fā)生時(shí)的最小業(yè)務(wù)中斷。
主機(jī):集群中真正提供服務(wù)的負(fù)載均衡設(shè)備。
備機(jī):集群中用于備份主機(jī)業(yè)務(wù)的設(shè)備,在主機(jī)故障的情況下,接替主機(jī)對(duì)外提供服務(wù)。
故障切換:主機(jī)故障后,由備機(jī)接替主機(jī)所承擔(dān)的業(yè)務(wù),對(duì)外提供服務(wù)。
鏈路檢測(cè):目前主要依靠指定協(xié)議數(shù)據(jù)包探測(cè),通過(guò)判斷能否正常發(fā)送數(shù)據(jù)并且能夠正常收到對(duì)端主機(jī)的應(yīng)答,則認(rèn)為這條鏈路是健康的,否則是故障鏈路。
應(yīng)用組:集群故障切換的基本單位,一個(gè)應(yīng)用組含有多個(gè)具有關(guān)聯(lián)關(guān)系的服務(wù),在同一時(shí)刻只在集群中的某一臺(tái)設(shè)備上發(fā)布。
浮動(dòng)ip:同一時(shí)刻只在集群中的某一臺(tái)設(shè)備上生效的ip地址,可通過(guò)應(yīng)用組切換來(lái)遷移到另一臺(tái)設(shè)備。
基于現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供一種應(yīng)用組切換方法。
參照?qǐng)D2,圖2為本發(fā)明應(yīng)用組切換方法第一實(shí)施例的流程示意圖。
在本實(shí)施例中,所述方法應(yīng)用于包括多個(gè)設(shè)備的集群中,所述集群中的應(yīng)用服務(wù)根據(jù)業(yè)務(wù)類型被分成不同的應(yīng)用組,所述應(yīng)用組切換方法包括:
步驟s10,集群中的主控設(shè)備將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
步驟s20,對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī),還可以是集群中的空閑設(shè)備;
步驟s30,在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
在本實(shí)施例中,先根據(jù)多臺(tái)負(fù)載均衡設(shè)備組建一個(gè)高可用集群,優(yōu)選是使用相同型號(hào)的設(shè)備組建高可用集群。該集群中有多臺(tái)設(shè)備,其中一臺(tái)是主控設(shè)備,一臺(tái)是備控設(shè)備,其余的是負(fù)載設(shè)備(也稱為候選設(shè)備),主控設(shè)備在集群中負(fù)責(zé)維護(hù)與管理配置、自動(dòng)同步數(shù)據(jù)給其它設(shè)備、實(shí)時(shí)監(jiān)控其它設(shè)備的健康狀態(tài),并且還負(fù)責(zé)給所有設(shè)備分配業(yè)務(wù)服務(wù);備控設(shè)備在主控設(shè)備故障時(shí),切換為主控設(shè)備進(jìn)行服務(wù);候選設(shè)備是在備控設(shè)備故障時(shí),作為新的備控設(shè)備以接替主機(jī)繼續(xù)服務(wù)的設(shè)備。主控設(shè)備是集群中的各個(gè)設(shè)備共同選取出來(lái)的,主控設(shè)備的具體選取方式如下:
集群包括管理口和心跳ha口,所述集群中的各個(gè)設(shè)備通過(guò)所述管理口和所述ha口提供的心跳線互相發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),并根據(jù)心跳包攜帶主控設(shè)備的選舉信息以選擇主控設(shè)備。
即,集群中各個(gè)設(shè)備會(huì)相互發(fā)送心跳包,心跳包中攜帶主控設(shè)備的選舉信息,當(dāng)超過(guò)一半的設(shè)備選擇一臺(tái)設(shè)備作為主控設(shè)備時(shí),被選擇的設(shè)備就成為該集群中的主控設(shè)備。
此外,需要說(shuō)明的是,本實(shí)施例中的集群包括管理口和心跳ha口,是一種雙網(wǎng)絡(luò)接口,即使其中一個(gè)網(wǎng)絡(luò)口出現(xiàn)故障,另一個(gè)網(wǎng)絡(luò)口也可以繼續(xù)被集群的各個(gè)設(shè)備使用,即各個(gè)設(shè)備通過(guò)一個(gè)網(wǎng)絡(luò)口的心跳線繼續(xù)進(jìn)行相互發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),進(jìn)行主控設(shè)備的選舉。即使主控設(shè)備出現(xiàn)故障,其它各設(shè)備也可以通過(guò)心跳線快速確定出新的主控設(shè)備,提高了集群心跳的健壯性,并且可以提高集群的使用率。
應(yīng)當(dāng)理解,本實(shí)施例中集群具有雙網(wǎng)絡(luò)心跳檢測(cè)功能,通過(guò)將設(shè)備管理網(wǎng)絡(luò)作為冗余的心跳網(wǎng)絡(luò),減小設(shè)備故障所帶來(lái)的影響,在很大程度地加強(qiáng)集群心跳的健壯性。
在確定主控設(shè)備之后,進(jìn)一步確定該集群中的備控設(shè)備,備控設(shè)備的確定方式包括兩種:用戶確定或主控設(shè)備確定,即,該備控設(shè)備可以是用戶在界面中設(shè)置的默認(rèn)設(shè)備,若用戶未在界面設(shè)置默認(rèn)設(shè)備,則主控設(shè)備根據(jù)各個(gè)設(shè)備通過(guò)心跳線發(fā)送的心跳包,以確定集群中各個(gè)設(shè)備的健康狀態(tài)。即,集群包括的管理口和心跳ha口,還便于主控設(shè)備確定各個(gè)設(shè)備的健康狀態(tài),即使備控設(shè)備故障,或者是一個(gè)網(wǎng)絡(luò)接口故障,主控設(shè)備也可根據(jù)另一個(gè)網(wǎng)絡(luò)口快速確定新的備控設(shè)備,同樣也提高了集群心跳的健壯性,并且可以提高集群的使用率。
當(dāng)主控設(shè)備確定集群中各個(gè)設(shè)備都是健康設(shè)備時(shí),可將負(fù)載分?jǐn)?shù)最低的設(shè)備作為備控設(shè)備。
此外,傳統(tǒng)的備機(jī)出現(xiàn)故障時(shí)不易被檢測(cè)出來(lái),往往等到主機(jī)故障切換后,才發(fā)現(xiàn)備機(jī)已經(jīng)不可用了,此時(shí)兩臺(tái)設(shè)備都已不可用,用戶業(yè)務(wù)隨之癱瘓。而本實(shí)施例中,通過(guò)雙網(wǎng)絡(luò)心跳檢測(cè)功能,對(duì)主控設(shè)備以及備控設(shè)備都通實(shí)時(shí)檢測(cè)功能,可以快速的更換備控設(shè)備,防止備控設(shè)備故障時(shí)導(dǎo)致整個(gè)集群系統(tǒng)的癱瘓,提高了集群中設(shè)備使用的高可用性。
在本實(shí)施例中,在集群中確定主控設(shè)備和備控設(shè)備之后,所述主控設(shè)備開始對(duì)集群中的各個(gè)應(yīng)用服務(wù)進(jìn)行分組,具體的分組方式是根據(jù)業(yè)務(wù)類型進(jìn)行劃分,以得到各個(gè)應(yīng)用組,例如集群中有三個(gè)服務(wù)業(yè)務(wù)vs1、vs2和vs3,其中,vs1、vs2的業(yè)務(wù)類型一致,vs3與前兩個(gè)的業(yè)務(wù)類型不一致,則可將vs1、vs2劃分為一個(gè)應(yīng)用組,將vs3劃分為一個(gè)應(yīng)用組。
以下是本實(shí)施例中實(shí)現(xiàn)應(yīng)用組切換的各個(gè)步驟:
其中,步驟s10,集群中的主控設(shè)備將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
在本實(shí)施例中,在確定主機(jī)之后,即可將應(yīng)用組分配給主機(jī),以使配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī)。所述主控設(shè)備對(duì)集群中的應(yīng)用組分配主機(jī)的方式包括:
方式一:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中存在角色為主機(jī)的設(shè)備,所述主控設(shè)備確定角色為主機(jī)的設(shè)備中是否存在默認(rèn)的主機(jī);
若存在,將默認(rèn)的主機(jī)作為應(yīng)用組的主機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)。
也就是說(shuō),主控設(shè)備在對(duì)各個(gè)應(yīng)用組分組之后,先將各個(gè)應(yīng)用組分配給相應(yīng)的主機(jī),在集群中存在角色為主機(jī)的設(shè)備的情況下,所述主控設(shè)備確定集群里所有角色為主機(jī)的設(shè)備中是否存在默認(rèn)的主機(jī),若存在默認(rèn)的主機(jī),即可將默認(rèn)的主機(jī)選作為應(yīng)用組的主機(jī);若沒(méi)有,則根據(jù)各個(gè)角色為主機(jī)的設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,以確定各個(gè)角色為主機(jī)的設(shè)備的負(fù)載分?jǐn)?shù),即負(fù)載分?jǐn)?shù)=sum(生效應(yīng)用組權(quán)值)/sum(所有應(yīng)用組權(quán)值),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)??梢岳斫?,分?jǐn)?shù)衡量設(shè)備間的相對(duì)負(fù)載情況,負(fù)載分?jǐn)?shù)越低表示設(shè)備越空閑。
方式二:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中不存在角色為主機(jī)的設(shè)備,選擇新選舉出的備機(jī)為主機(jī)。
即,在集群中不存在主機(jī)的情況下,選擇新選舉出來(lái)的備機(jī)作為主機(jī)。
其中,步驟s20,對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī),還可以是集群中的空閑設(shè)備;
在對(duì)應(yīng)用組分配主機(jī)之后,所述主控設(shè)備進(jìn)一步對(duì)分配有主機(jī)的應(yīng)用組選擇備機(jī),備機(jī)的選擇方式包括:
方式一:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中存在角色為備機(jī)的設(shè)備,所述主控設(shè)備確定角色為備機(jī)的設(shè)備中是否存在默認(rèn)的備機(jī);
若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)重值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
即,在角色為備機(jī)的設(shè)備中,確定是否存在默認(rèn)設(shè)備,若有,則直接將其選為備機(jī),否則在角色為備機(jī)的設(shè)備中選擇一臺(tái)負(fù)載分?jǐn)?shù)最低的設(shè)備為備機(jī);
方式二:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中不存在角色為備機(jī)的設(shè)備,所述主控設(shè)備確定集群中是否存在默認(rèn)的備機(jī);
若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)重值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
方式三:在沒(méi)有健康設(shè)備時(shí),將所有故障但在線的設(shè)備構(gòu)成一個(gè)子集,在故障的設(shè)備中,所述主控設(shè)備確定是否存在默認(rèn)的備機(jī),若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī),若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
其中,步驟s30,在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
在確定應(yīng)用組的主機(jī)和備機(jī)之后,主控設(shè)備可監(jiān)測(cè)各個(gè)應(yīng)用組的主機(jī)工作狀態(tài),在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),即可將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組繼續(xù)提供服務(wù)。
可以理解,本實(shí)施例中,每個(gè)應(yīng)用組都有一臺(tái)設(shè)備作為主機(jī),另外的設(shè)備作為備機(jī),提供靈活有效的應(yīng)用切換機(jī)制,即使主機(jī)故障,也可將應(yīng)用組切換至備機(jī)中繼續(xù)提供服務(wù),降低整個(gè)系統(tǒng)的故障概率。
本實(shí)施例中,集群的架構(gòu)如圖3所示,集群中包括管理口和ha口,集群中的各個(gè)設(shè)備通過(guò)心跳線相互發(fā)包,以根據(jù)各個(gè)心跳包確定出主控設(shè)備,在確定出主控設(shè)備后,再確定出備控設(shè)備以及ad設(shè)備。后續(xù),主控設(shè)備在集群中對(duì)各個(gè)應(yīng)用組分配主機(jī)和備機(jī),本實(shí)施例中,主控設(shè)備為應(yīng)用組分配主機(jī)時(shí),保證不同的應(yīng)用組分配到不同的設(shè)備作為主機(jī),例如,集群中當(dāng)前分了兩個(gè)應(yīng)用組,兩個(gè)應(yīng)用組均分配至不同的ad設(shè)備中。
為了更清楚理解本實(shí)施例,舉例詳述之:參照?qǐng)D4,現(xiàn)有兩個(gè)應(yīng)用組,應(yīng)用組1和應(yīng)用組2,如圖4所示,通過(guò)高可用集群系統(tǒng)的應(yīng)用組選舉算法,將應(yīng)用組均衡地分布在不同設(shè)備上,選舉結(jié)果為:
應(yīng)用組1的主機(jī)為ad1,其備機(jī)為ad2;應(yīng)用組2的主機(jī)為ad2,其備機(jī)為ad3;應(yīng)用組1含有虛擬服務(wù)(vs1和vs2)、浮動(dòng)ip(ip1和ip2)、源地址轉(zhuǎn)換(snat1);應(yīng)用組2含有虛擬服務(wù)(vs3和vs4)、浮動(dòng)ip(ip3和ip4)、源地址轉(zhuǎn)換(snat2);此時(shí)ad1對(duì)外提供vs1和vs2服務(wù),ad2對(duì)外提供vs3和vs4服務(wù)。
若ad1發(fā)生故障,首先應(yīng)用組1會(huì)立刻切換至ad2,ad2角色由備機(jī)升級(jí)為主機(jī),接著應(yīng)用組1在可用設(shè)備里重新選舉ad3作為備機(jī),最終結(jié)果是ad2對(duì)外提供vs1、vs2、vs3、vs4服務(wù)。
若ad2發(fā)生故障,首先應(yīng)用組2會(huì)立刻切換至ad3,ad3角色由備機(jī)升級(jí)為主機(jī),接著應(yīng)用組2在可用設(shè)備里重新選舉ad1作為備機(jī),而應(yīng)用組1的備機(jī)失效,于是在可用設(shè)備里重新選舉ad3作為備機(jī),最終結(jié)果是ad1對(duì)外提供vs1和vs2服務(wù),ad3對(duì)外提供vs3和vs4服務(wù)。
若ad1和ad2都發(fā)生故障了,此時(shí)對(duì)于應(yīng)用組1來(lái)說(shuō),其主機(jī)和備機(jī)都不可用了,那么將會(huì)觸發(fā)應(yīng)用組選舉,在所有設(shè)備中找到ad3是可用的,即選舉ad3作為應(yīng)用組1的主機(jī)。對(duì)于應(yīng)用組2來(lái)說(shuō),其主機(jī)故障了,業(yè)務(wù)便立刻切換至ad3,ad3角色由備機(jī)升級(jí)為主機(jī)。最終結(jié)果是ad3對(duì)外提供vs1、vs2、vs3、vs4服務(wù)。
通過(guò)上述方式,即可完成集群中各個(gè)應(yīng)用組的切換。
可以理解,本實(shí)施例中,集群中的設(shè)備以應(yīng)用組為單位可以各自發(fā)布不同的服務(wù),然后由其它設(shè)備對(duì)此服務(wù)形成備份,在主機(jī)故障時(shí),將應(yīng)用組切換至備機(jī)中繼續(xù)服務(wù),保證故障發(fā)生時(shí)的最小業(yè)務(wù)中斷。而且只要集群中有一臺(tái)設(shè)備可用,就不會(huì)導(dǎo)致任何一個(gè)服務(wù)故障無(wú)法使用,在此基礎(chǔ)上,實(shí)現(xiàn)均衡的應(yīng)用組分配和故障切換機(jī)制。通過(guò)應(yīng)用組的分配,實(shí)現(xiàn)不同業(yè)務(wù)在不同的設(shè)備上生效,并提供應(yīng)用組的切換能力。
本實(shí)施例提出的應(yīng)用組切換方法,集群中的主控設(shè)備先將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī),然后對(duì)對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),后續(xù)在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。本方案中,充分利用集群中的每臺(tái)設(shè)備發(fā)布不同的應(yīng)用服務(wù),同時(shí)各臺(tái)設(shè)備能互為備機(jī),當(dāng)某個(gè)應(yīng)用組的備機(jī)在主機(jī)故障的情況下,能接替主機(jī)繼續(xù)提供服務(wù),而在主機(jī)沒(méi)有故障的情況下,備機(jī)自己作為另一個(gè)應(yīng)用組的主機(jī)也能繼續(xù)提供服務(wù),不會(huì)導(dǎo)致硬件資源的浪費(fèi),此外,集群中的各個(gè)設(shè)備都能提供服務(wù),不限于主機(jī)提供服務(wù),有利于集群中業(yè)務(wù)服務(wù)的拓展。
進(jìn)一步地,基于第一實(shí)施例提出本發(fā)明應(yīng)用組切換方法的第二實(shí)施例。
本實(shí)施例與第一實(shí)施例的區(qū)別在于:參照?qǐng)D5,所述步驟s20之后,所述應(yīng)用組切換方法還包括:
步驟s40,所述主控設(shè)備將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至同一個(gè)應(yīng)用組的備機(jī)中,以使同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步;
步驟s50,在同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中。
在本實(shí)施例中,當(dāng)應(yīng)用組發(fā)生故障切換時(shí),為防止用戶已有連接被中斷或者新連接調(diào)度到其它服務(wù)器上面,這里引入了連接跟蹤同步和會(huì)話保持同步機(jī)制。以應(yīng)用組為單位,在主備機(jī)之間同步連接跟蹤和會(huì)話保持信息,可以減少設(shè)備需要同步的數(shù)據(jù)量。同步分為批量同步和增量同步,當(dāng)應(yīng)用組的主備機(jī)剛建立起來(lái)時(shí),所述主控設(shè)備將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至備機(jī)中,以使主機(jī)和備機(jī)保持連接同步和會(huì)話同步;而在主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中即可,具體流程如下:
連接跟蹤同步:如圖6a所示,應(yīng)用組1主備機(jī)分別為ad1和ad2,客戶端c與ad1創(chuàng)建連接,ad1向ad2同步服務(wù)相關(guān)連接跟蹤信息,當(dāng)ad1發(fā)生故障,ad2成為應(yīng)用組1的主機(jī),客戶端c可與ad2在已有的連接上繼續(xù)通訊。
會(huì)話保持同步:如圖6b所示,應(yīng)用組1主備機(jī)分別為ad1和ad2,客戶端c向ad1發(fā)起請(qǐng)求,ad1將客戶端c的請(qǐng)求調(diào)度到服務(wù)器n,ad1向ad2同步vs相關(guān)會(huì)話會(huì)話保持信息,當(dāng)ad1發(fā)生故障,ad2成為應(yīng)用組1的主機(jī),客戶端c再次向ad2發(fā)起請(qǐng)求,ad2可將客戶端c的請(qǐng)求調(diào)度到相同的服務(wù)器n。
應(yīng)當(dāng)理解,若是按照傳統(tǒng)的雙機(jī)模型方案,若要保證主備切換后,原有連接服務(wù)和會(huì)話記錄不發(fā)生改變,那么主機(jī)必須同步所有連接跟蹤和會(huì)話保持到備機(jī)上,當(dāng)業(yè)務(wù)擴(kuò)展導(dǎo)致同步的數(shù)據(jù)量增加時(shí),將給主機(jī)帶來(lái)更多的性能損耗。
在本實(shí)施例中,每個(gè)應(yīng)用組的主機(jī)會(huì)向首選備機(jī)實(shí)時(shí)同步連接跟蹤和會(huì)話記錄,確保主備切換時(shí)用戶連接和會(huì)話保持不中斷,并且同步數(shù)據(jù)的方式是協(xié)同批量同步和增量同步,先批量同步之前的數(shù)據(jù),在服務(wù)連接和會(huì)話記錄同步之后,后續(xù)新的內(nèi)容增量同步即可,無(wú)須再將主機(jī)中所有數(shù)據(jù)同步至備機(jī)中,對(duì)主機(jī)的損耗降低了,并且數(shù)據(jù)的同步效率更高,更加智能。
進(jìn)一步地,基于第一或第二實(shí)施例提出本發(fā)明應(yīng)用組切換方法的第三實(shí)施例。
本實(shí)施例與第一或第二實(shí)施例的區(qū)別在于:參照?qǐng)D7,所述步驟s30之前,所述應(yīng)用組切換方法還包括:
步驟s60,所述主控設(shè)備實(shí)時(shí)監(jiān)測(cè)各個(gè)主機(jī)上報(bào)的鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息;
步驟s70,若所述主控設(shè)備監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),認(rèn)為所述應(yīng)用組的主機(jī)故障。
在本實(shí)施例中,集群中每臺(tái)設(shè)備都可以監(jiān)視自身的鏈路狀態(tài)和節(jié)點(diǎn)狀態(tài),并上報(bào)給集群主控設(shè)備,主控設(shè)備當(dāng)檢測(cè)到鏈路或者節(jié)點(diǎn)故障時(shí),涉及到該鏈路和節(jié)點(diǎn)的應(yīng)用組將被切換到備機(jī)上,保證服務(wù)持續(xù)可靠。
值得注意的是,在引用第二實(shí)施例時(shí),所述步驟s60優(yōu)選位于所述步驟s50之后。
在本實(shí)施例中,集群中的各個(gè)主機(jī)通過(guò)心跳線定時(shí)向主控設(shè)備上報(bào)鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息,以便于主控設(shè)備監(jiān)控各個(gè)主機(jī)的運(yùn)行狀態(tài),主控設(shè)備監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),即可開始將應(yīng)用組進(jìn)行切換,提高了應(yīng)用組切換的及時(shí)性。
進(jìn)一步地,基于第一至第三實(shí)施例提出本發(fā)明應(yīng)用組切換方法的第四實(shí)施例。
本實(shí)施例與第一至第三實(shí)施例的區(qū)別在于:所述集群中的各個(gè)應(yīng)用組使用虛擬物理地址,所述在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),所述應(yīng)用組切換方法還包括:
所述主控設(shè)備將應(yīng)用組的虛擬物理地址從主機(jī)遷移至備機(jī)中,以使切換前后的應(yīng)用組的地址保持不變。
應(yīng)當(dāng)理解,傳統(tǒng)的網(wǎng)絡(luò)環(huán)境中,上游設(shè)備開啟了arp(addressresolutionprotocol,地址解析協(xié)議)綁定,會(huì)導(dǎo)致應(yīng)用組切換后無(wú)法使用新mac(mediaaccesscontrol,介質(zhì)訪問(wèn)控制)物理地址。那么切換前后的應(yīng)用組的地址不同,會(huì)導(dǎo)致業(yè)務(wù)中斷。
而本實(shí)施例中,通過(guò)mac地址偽裝,可保證切換后服務(wù)ip正常使用,應(yīng)用組1包含虛擬服務(wù)vs1,vs1引用浮動(dòng)ip1,ip1配置了虛擬mac地址mac1。當(dāng)ad1發(fā)生故障,應(yīng)用組1主機(jī)切換至ad2,ip1在ad2上生效,ad2使用mac1廣播ip1的arp,若ad2收到對(duì)于ip1的arp請(qǐng)求廣播,使用mac1返回arp應(yīng)答。通過(guò)mac地址偽裝,當(dāng)應(yīng)用組發(fā)生故障切換時(shí),ip地址轉(zhuǎn)移至其他設(shè)備,可使ip地址使用的mac地址不變,以達(dá)到最小切換時(shí)間,也可以滿足上游設(shè)備的arp綁定需求。
本實(shí)施例中,通過(guò)使用虛擬的mac地址偽裝,應(yīng)用組切換時(shí)浮動(dòng)ip對(duì)應(yīng)的mac地址跟隨應(yīng)用組一起切換到備機(jī),這樣切換后應(yīng)用組的mac地址保持不變,以達(dá)到最快的切換速度,將客戶業(yè)務(wù)的中斷時(shí)間減少到最短,保證了業(yè)務(wù)的正常進(jìn)行。
本發(fā)明進(jìn)一步提供一種應(yīng)用組切換裝置。
參照?qǐng)D8,圖8為本發(fā)明應(yīng)用調(diào)試裝置較佳實(shí)施例的功能模塊示意圖。
需要強(qiáng)調(diào)的是,對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),圖8所示功能模塊圖僅僅是一個(gè)較佳實(shí)施例的示例圖,本領(lǐng)域的技術(shù)人員圍繞圖8所示的應(yīng)用組切換裝置的功能模塊,可輕易進(jìn)行新的功能模塊的補(bǔ)充;各功能模塊的名稱是自定義名稱,僅用于輔助理解該應(yīng)用組切換裝置的各個(gè)程序功能塊,不用于限定本發(fā)明的技術(shù)方案,本發(fā)明技術(shù)方案的核心是,各自定義名稱的功能模塊所要達(dá)成的功能。
本實(shí)施例提出一種應(yīng)用組切換裝置,所述裝置應(yīng)用于包括多個(gè)設(shè)備的集群中,所述集群中的應(yīng)用服務(wù)根據(jù)業(yè)務(wù)類型被分成不同的應(yīng)用組,所述應(yīng)用組切換裝置包括:
分配模塊10,用于將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
選擇模塊20,用于對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī),還可以是集群中的空閑設(shè)備;
切換模塊30,用于在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
在本實(shí)施例中,先根據(jù)多臺(tái)負(fù)載均衡設(shè)備組建一個(gè)高可用集群,優(yōu)選是使用相同型號(hào)的設(shè)備組建高可用集群。該集群中有多臺(tái)設(shè)備,其中一臺(tái)是主控設(shè)備,一臺(tái)是備控設(shè)備,其余的是負(fù)載設(shè)備(也稱為候選設(shè)備),主控設(shè)備在集群中負(fù)責(zé)維護(hù)與管理配置、自動(dòng)同步數(shù)據(jù)給其它設(shè)備、實(shí)時(shí)監(jiān)控其它設(shè)備的健康狀態(tài),并且還負(fù)責(zé)給所有設(shè)備分配業(yè)務(wù)服務(wù);備控設(shè)備在主控設(shè)備故障時(shí),切換為主控設(shè)備進(jìn)行服務(wù);候選設(shè)備是在備控設(shè)備故障時(shí),作為新的備控設(shè)備以接替主機(jī)繼續(xù)服務(wù)的設(shè)備。主控設(shè)備是集群中的各個(gè)設(shè)備共同選取出來(lái)的,主控設(shè)備的具體選取方式如下:
集群包括管理口和心跳ha口,所述集群中的各個(gè)設(shè)備通過(guò)所述管理口和所述ha口提供的心跳線互相發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),并根據(jù)心跳包攜帶主控設(shè)備的選舉信息以選擇主控設(shè)備。
即,集群中各個(gè)設(shè)備會(huì)相互發(fā)送心跳包,心跳包中攜帶主控設(shè)備的選舉信息,當(dāng)超過(guò)一半的設(shè)備選擇一臺(tái)設(shè)備作為主控設(shè)備時(shí),被選擇的設(shè)備就成為該集群中的主控設(shè)備。
此外,需要說(shuō)明的是,本實(shí)施例中的集群包括管理口和心跳ha口,是一種雙網(wǎng)絡(luò)接口,即使其中一個(gè)網(wǎng)絡(luò)口出現(xiàn)故障,另一個(gè)網(wǎng)絡(luò)口也可以繼續(xù)被集群的各個(gè)設(shè)備使用,即各個(gè)設(shè)備通過(guò)一個(gè)網(wǎng)絡(luò)口的心跳線繼續(xù)進(jìn)行相互發(fā)送心跳包,以檢測(cè)各個(gè)設(shè)備的健康狀態(tài),進(jìn)行主控設(shè)備的選舉。即使主控設(shè)備出現(xiàn)故障,其它各設(shè)備也可以通過(guò)心跳線快速確定出新的主控設(shè)備,提高了集群心跳的健壯性,并且可以提高集群的使用率。
應(yīng)當(dāng)理解,本實(shí)施例中集群具有雙網(wǎng)絡(luò)心跳檢測(cè)功能,通過(guò)將設(shè)備管理網(wǎng)絡(luò)作為冗余的心跳網(wǎng)絡(luò),減小設(shè)備故障所帶來(lái)的影響,在很大程度地加強(qiáng)集群心跳的健壯性。
在確定主控設(shè)備之后,進(jìn)一步確定該集群中的備控設(shè)備,備控設(shè)備的確定方式包括兩種:用戶確定或主控設(shè)備確定,即,該備控設(shè)備可以是用戶在界面中設(shè)置的默認(rèn)設(shè)備,若用戶未在界面設(shè)置默認(rèn)設(shè)備,則主控設(shè)備根據(jù)各個(gè)設(shè)備通過(guò)心跳線發(fā)送的心跳包,以確定集群中各個(gè)設(shè)備的健康狀態(tài)。即,集群包括的管理口和心跳ha口,還便于主控設(shè)備確定各個(gè)設(shè)備的健康狀態(tài),即使備控設(shè)備故障,或者是一個(gè)網(wǎng)絡(luò)接口故障,主控設(shè)備也可根據(jù)另一個(gè)網(wǎng)絡(luò)口快速確定新的備控設(shè)備,同樣也提高了集群心跳的健壯性,并且可以提高集群的使用率。
當(dāng)主控設(shè)備確定集群中各個(gè)設(shè)備都是健康設(shè)備時(shí),可將負(fù)載分?jǐn)?shù)最低的設(shè)備作為備控設(shè)備。
此外,傳統(tǒng)的備機(jī)出現(xiàn)故障時(shí)不易被檢測(cè)出來(lái),往往等到主機(jī)故障切換后,才發(fā)現(xiàn)備機(jī)已經(jīng)不可用了,此時(shí)兩臺(tái)設(shè)備都已不可用,用戶業(yè)務(wù)隨之癱瘓。而本實(shí)施例中,通過(guò)雙網(wǎng)絡(luò)心跳檢測(cè)功能,對(duì)主控設(shè)備以及備控設(shè)備都通實(shí)時(shí)檢測(cè)功能,可以快速的更換備控設(shè)備,防止備控設(shè)備故障時(shí)導(dǎo)致整個(gè)集群系統(tǒng)的癱瘓,提高了集群中設(shè)備使用的高可用性。
在本實(shí)施例中,在集群中確定主控設(shè)備和備控設(shè)備之后,所述主控設(shè)備開始對(duì)集群中的各個(gè)應(yīng)用服務(wù)進(jìn)行分組,具體的分組方式是根據(jù)業(yè)務(wù)類型進(jìn)行劃分,以得到各個(gè)應(yīng)用組,例如集群中有三個(gè)服務(wù)業(yè)務(wù)vs1、vs2和vs3,其中,vs1、vs2的業(yè)務(wù)類型一致,vs3與前兩個(gè)的業(yè)務(wù)類型不一致,則可將vs1、vs2劃分為一個(gè)應(yīng)用組,將vs3劃分為一個(gè)應(yīng)用組。
以下是本實(shí)施例中實(shí)現(xiàn)應(yīng)用組切換的各個(gè)模塊,以及模塊功能介紹:
其中,分配模塊10,用于將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī);
在本實(shí)施例中,在確定主機(jī)之后,分配模塊10即可將應(yīng)用組分配給主機(jī),以使配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī)。分配模塊10對(duì)集群中的應(yīng)用組分配主機(jī)的方式包括:
方式一:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中存在角色為主機(jī)的設(shè)備,所述主控設(shè)備確定角色為主機(jī)的設(shè)備中是否存在默認(rèn)的主機(jī);
若存在,將默認(rèn)的主機(jī)作為應(yīng)用組的主機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)。
也就是說(shuō),主控設(shè)備在對(duì)各個(gè)應(yīng)用組分組之后,先將各個(gè)應(yīng)用組分配給相應(yīng)的主機(jī),在集群中存在角色為主機(jī)的設(shè)備的情況下,所述主控設(shè)備確定集群里所有角色為主機(jī)的設(shè)備中是否存在默認(rèn)的主機(jī),若存在默認(rèn)的主機(jī),即可將默認(rèn)的主機(jī)選作為應(yīng)用組的主機(jī);若沒(méi)有,則根據(jù)各個(gè)角色為主機(jī)的設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,以確定各個(gè)角色為主機(jī)的設(shè)備的負(fù)載分?jǐn)?shù),即負(fù)載分?jǐn)?shù)=sum(生效應(yīng)用組權(quán)值)/sum(所有應(yīng)用組權(quán)值),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的主機(jī)??梢岳斫猓?jǐn)?shù)衡量設(shè)備間的相對(duì)負(fù)載情況,負(fù)載分?jǐn)?shù)越低表示設(shè)備越空閑。
方式二:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中不存在角色為主機(jī)的設(shè)備,選擇新選舉出的備機(jī)為主機(jī)。
即,在集群中不存在主機(jī)的情況下,選擇新選舉出來(lái)的備機(jī)作為主機(jī)。
其中,選擇模塊20,用于對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),其中,當(dāng)前應(yīng)用組的備機(jī)可以是其它應(yīng)用組的主機(jī)或備機(jī),還可以是集群中的空閑設(shè)備;
在對(duì)應(yīng)用組分配主機(jī)之后,選擇模塊20進(jìn)一步對(duì)分配有主機(jī)的應(yīng)用組選擇備機(jī),備機(jī)的選擇方式包括:
方式一:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中存在角色為備機(jī)的設(shè)備,所述主控設(shè)備確定角色為備機(jī)的設(shè)備中是否存在默認(rèn)的備機(jī);
若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)重值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
即,在角色為備機(jī)的設(shè)備中,確定是否存在默認(rèn)設(shè)備,若有,則直接將其選為備機(jī),否則在角色為備機(jī)的設(shè)備中選擇一臺(tái)負(fù)載分?jǐn)?shù)最低的設(shè)備為備機(jī);
方式二:將所有健康的設(shè)備構(gòu)成一個(gè)子集;
若集群中不存在角色為備機(jī)的設(shè)備,所述主控設(shè)備確定集群中是否存在默認(rèn)的備機(jī);
若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī);
若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)重值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
方式三:在沒(méi)有健康設(shè)備時(shí),將所有故障但在線的設(shè)備構(gòu)成一個(gè)子集,在故障的設(shè)備中,所述主控設(shè)備確定是否存在默認(rèn)的備機(jī),若存在,將默認(rèn)的備機(jī)作為應(yīng)用組的備機(jī),若不存在,根據(jù)各個(gè)設(shè)備中已生效的應(yīng)用組的權(quán)值和,與集群中所有應(yīng)用組的權(quán)值和的比值,確定各個(gè)設(shè)備的負(fù)載分?jǐn)?shù),再將負(fù)載分?jǐn)?shù)最小的設(shè)備作為應(yīng)用組的備機(jī)。
其中,切換模塊30,用于在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。
在確定應(yīng)用組的主機(jī)和備機(jī)之后,切換模塊30可監(jiān)測(cè)各個(gè)應(yīng)用組的主機(jī)工作狀態(tài),在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),即可將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組繼續(xù)提供服務(wù)。
可以理解,本實(shí)施例中,每個(gè)應(yīng)用組都有一臺(tái)設(shè)備作為主機(jī),另外的設(shè)備作為備機(jī),提供靈活有效的應(yīng)用切換機(jī)制,即使主機(jī)故障,也可將應(yīng)用組切換至備機(jī)中繼續(xù)提供服務(wù),降低整個(gè)系統(tǒng)的故障概率。
本實(shí)施例中,集群的架構(gòu)如圖3所示,集群中包括管理口和ha口,集群中的各個(gè)設(shè)備通過(guò)心跳線相互發(fā)包,以根據(jù)各個(gè)心跳包確定出主控設(shè)備,在確定出主控設(shè)備后,再確定出備控設(shè)備以及ad設(shè)備。后續(xù),主控設(shè)備在集群中對(duì)各個(gè)應(yīng)用組分配主機(jī)和備機(jī),本實(shí)施例中,主控設(shè)備為應(yīng)用組分配主機(jī)時(shí),保證不同的應(yīng)用組分配到不同的設(shè)備作為主機(jī),例如,集群中當(dāng)前分了兩個(gè)應(yīng)用組,兩個(gè)應(yīng)用組均分配至不同的ad設(shè)備中。
為了更清楚理解本實(shí)施例,舉例詳述之:參照?qǐng)D4,現(xiàn)有兩個(gè)應(yīng)用組,應(yīng)用組1和應(yīng)用組2,如圖4所示,通過(guò)高可用集群系統(tǒng)的應(yīng)用組選舉算法,將應(yīng)用組均衡地分布在不同設(shè)備上,選舉結(jié)果為:
應(yīng)用組1的主機(jī)為ad1,其備機(jī)為ad2;應(yīng)用組2的主機(jī)為ad2,其備機(jī)為ad3;應(yīng)用組1含有虛擬服務(wù)(vs1和vs2)、浮動(dòng)ip(ip1和ip2)、源地址轉(zhuǎn)換(snat1);應(yīng)用組2含有虛擬服務(wù)(vs3和vs4)、浮動(dòng)ip(ip3和ip4)、源地址轉(zhuǎn)換(snat2);此時(shí)ad1對(duì)外提供vs1和vs2服務(wù),ad2對(duì)外提供vs3和vs4服務(wù)。
若ad1發(fā)生故障,首先應(yīng)用組1會(huì)立刻切換至ad2,ad2角色由備機(jī)升級(jí)為主機(jī),接著應(yīng)用組1在可用設(shè)備里重新選舉ad3作為備機(jī),最終結(jié)果是ad2對(duì)外提供vs1、vs2、vs3、vs4服務(wù)。
若ad2發(fā)生故障,首先應(yīng)用組2會(huì)立刻切換至ad3,ad3角色由備機(jī)升級(jí)為主機(jī),接著應(yīng)用組2在可用設(shè)備里重新選舉ad1作為備機(jī),而應(yīng)用組1的備機(jī)失效,于是在可用設(shè)備里重新選舉ad3作為備機(jī),最終結(jié)果是ad1對(duì)外提供vs1和vs2服務(wù),ad3對(duì)外提供vs3和vs4服務(wù)。
若ad1和ad2都發(fā)生故障了,此時(shí)對(duì)于應(yīng)用組1來(lái)說(shuō),其主機(jī)和備機(jī)都不可用了,那么將會(huì)觸發(fā)應(yīng)用組選舉,在所有設(shè)備中找到ad3是可用的,即選舉ad3作為應(yīng)用組1的主機(jī)。對(duì)于應(yīng)用組2來(lái)說(shuō),其主機(jī)故障了,業(yè)務(wù)便立刻切換至ad3,ad3角色由備機(jī)升級(jí)為主機(jī)。最終結(jié)果是ad3對(duì)外提供vs1、vs2、vs3、vs4服務(wù)。
通過(guò)上述方式,即可完成集群中各個(gè)應(yīng)用組的切換。
可以理解,本實(shí)施例中,集群中的設(shè)備以應(yīng)用組為單位可以各自發(fā)布不同的服務(wù),然后由其它設(shè)備對(duì)此服務(wù)形成備份,在主機(jī)故障時(shí),將應(yīng)用組切換至備機(jī)中繼續(xù)服務(wù),保證故障發(fā)生時(shí)的最小業(yè)務(wù)中斷。而且只要集群中有一臺(tái)設(shè)備可用,就不會(huì)導(dǎo)致任何一個(gè)服務(wù)故障無(wú)法使用,在此基礎(chǔ)上,實(shí)現(xiàn)均衡的應(yīng)用組分配和故障切換機(jī)制。通過(guò)應(yīng)用組的分配,實(shí)現(xiàn)不同業(yè)務(wù)在不同的設(shè)備上生效,并提供應(yīng)用組的切換能力。
本實(shí)施例提出的應(yīng)用組切換裝置,集群中的主控設(shè)備先將各個(gè)應(yīng)用組分配至所述集群的各個(gè)設(shè)備,以將分配有應(yīng)用組的設(shè)備作為應(yīng)用組的主機(jī),然后對(duì)對(duì)分配有主機(jī)的每一個(gè)應(yīng)用組,在集群中選擇除當(dāng)前應(yīng)用組的所述主機(jī)以外的任一設(shè)備作為當(dāng)前應(yīng)用組的備機(jī),后續(xù)在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),將主機(jī)故障的應(yīng)用組切換至所述應(yīng)用組的備機(jī)中,由備機(jī)對(duì)應(yīng)用組提供服務(wù)。本方案中,充分利用集群中的每臺(tái)設(shè)備發(fā)布不同的應(yīng)用服務(wù),同時(shí)各臺(tái)設(shè)備能互為備機(jī),當(dāng)某個(gè)應(yīng)用組的備機(jī)在主機(jī)故障的情況下,能接替主機(jī)繼續(xù)提供服務(wù),而在主機(jī)沒(méi)有故障的情況下,備機(jī)自己作為另一個(gè)應(yīng)用組的主機(jī)也能繼續(xù)提供服務(wù),不會(huì)導(dǎo)致硬件資源的浪費(fèi),此外,集群中的各個(gè)設(shè)備都能提供服務(wù),不限于主機(jī)提供服務(wù),有利于集群中業(yè)務(wù)服務(wù)的拓展。
進(jìn)一步地,基于第一實(shí)施例提出本發(fā)明應(yīng)用組切換裝置的第二實(shí)施例。
本實(shí)施例與第一實(shí)施例的區(qū)別在于:參照?qǐng)D9,所述應(yīng)用組切換裝置還包括:
同步模塊40,用于將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至同一個(gè)應(yīng)用組的備機(jī)中,以使同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步;
啟動(dòng)模塊50,用于在同一個(gè)應(yīng)用組的主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中。
本實(shí)施例中,同步模塊和啟動(dòng)模塊可統(tǒng)稱為數(shù)據(jù)同步模塊。
在本實(shí)施例中,當(dāng)應(yīng)用組發(fā)生故障切換時(shí),為防止用戶已有連接被中斷或者新連接調(diào)度到其它服務(wù)器上面,這里引入了連接跟蹤同步和會(huì)話保持同步機(jī)制。以應(yīng)用組為單位,在主備機(jī)之間同步連接跟蹤和會(huì)話保持信息,可以減少設(shè)備需要同步的數(shù)據(jù)量。同步分為批量同步和增量同步,當(dāng)應(yīng)用組的主備機(jī)剛建立起來(lái)時(shí),同步模塊40將主機(jī)中的服務(wù)連接信息及/或會(huì)話記錄批量同步至備機(jī)中,以使主機(jī)和備機(jī)保持連接同步和會(huì)話同步;而在主機(jī)和備機(jī)保持連接同步和會(huì)話同步的情況下,啟動(dòng)模塊50啟動(dòng)增量同步方式,以將主機(jī)中新的服務(wù)連接信息及/或會(huì)話記錄同步至備機(jī)中即可,具體流程如下:
連接跟蹤同步:如圖6a所示,應(yīng)用組1主備機(jī)分別為ad1和ad2,客戶端c與ad1創(chuàng)建連接,ad1向ad2同步服務(wù)相關(guān)連接跟蹤信息,當(dāng)ad1發(fā)生故障,ad2成為應(yīng)用組1的主機(jī),客戶端c可與ad2在已有的連接上繼續(xù)通訊。
會(huì)話保持同步:如圖6b所示,應(yīng)用組1主備機(jī)分別為ad1和ad2,客戶端c向ad1發(fā)起請(qǐng)求,ad1將客戶端c的請(qǐng)求調(diào)度到服務(wù)器n,ad1向ad2同步vs相關(guān)會(huì)話會(huì)話保持信息,當(dāng)ad1發(fā)生故障,ad2成為應(yīng)用組1的主機(jī),客戶端c再次向ad2發(fā)起請(qǐng)求,ad2可將客戶端c的請(qǐng)求調(diào)度到相同的服務(wù)器n。
應(yīng)當(dāng)理解,若是按照傳統(tǒng)的雙機(jī)模型方案,若要保證主備切換后,原有連接服務(wù)和會(huì)話記錄不發(fā)生改變,那么主機(jī)必須同步所有連接跟蹤和會(huì)話保持到備機(jī)上,當(dāng)業(yè)務(wù)擴(kuò)展導(dǎo)致同步的數(shù)據(jù)量增加時(shí),將給主機(jī)帶來(lái)更多的性能損耗。
在本實(shí)施例中,每個(gè)應(yīng)用組的主機(jī)會(huì)向首選備機(jī)實(shí)時(shí)同步連接跟蹤和會(huì)話記錄,確保主備切換時(shí)用戶連接和會(huì)話保持不中斷,并且同步數(shù)據(jù)的方式是協(xié)同批量同步和增量同步,先批量同步之前的數(shù)據(jù),在服務(wù)連接和會(huì)話記錄同步之后,后續(xù)新的內(nèi)容增量同步即可,無(wú)須再將主機(jī)中所有數(shù)據(jù)同步至備機(jī)中,對(duì)主機(jī)的損耗降低了,并且數(shù)據(jù)的同步效率更高,更加智能。
進(jìn)一步地,基于第一或第二實(shí)施例提出本發(fā)明應(yīng)用組切換裝置的第三實(shí)施例。
本實(shí)施例與第一或第二實(shí)施例的區(qū)別在于:參照?qǐng)D10,所述應(yīng)用組切換裝置還包括:
監(jiān)測(cè)模塊60,用于實(shí)時(shí)監(jiān)測(cè)各個(gè)主機(jī)上報(bào)的鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息;
處理模塊70,用于若監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),認(rèn)為所述應(yīng)用組的主機(jī)故障。
在本實(shí)施例中,集群中每臺(tái)設(shè)備都可以監(jiān)視自身的鏈路狀態(tài)和節(jié)點(diǎn)狀態(tài),并上報(bào)給集群主控設(shè)備,監(jiān)測(cè)模塊60檢測(cè)到鏈路或者節(jié)點(diǎn)故障時(shí),處理模塊70將涉及到該鏈路和節(jié)點(diǎn)的應(yīng)用組切換到備機(jī)上,保證服務(wù)持續(xù)可靠。
在本實(shí)施例中,集群中的各個(gè)主機(jī)通過(guò)心跳線定時(shí)向主控設(shè)備上報(bào)鏈路狀態(tài)信息和節(jié)點(diǎn)狀態(tài)信息,以便于主控設(shè)備監(jiān)控各個(gè)主機(jī)的運(yùn)行狀態(tài),主控設(shè)備監(jiān)測(cè)到應(yīng)用組的主機(jī)上報(bào)鏈路離線或者節(jié)點(diǎn)離線時(shí),即可開始將應(yīng)用組進(jìn)行切換,提高了應(yīng)用組切換的及時(shí)性。
進(jìn)一步地,基于第一至第三實(shí)施例提出本發(fā)明應(yīng)用組切換裝置的第四實(shí)施例。
本實(shí)施例與第一至第三實(shí)施例的區(qū)別在于:所述集群中的各個(gè)應(yīng)用組使用虛擬物理地址,所述在檢測(cè)到有應(yīng)用組的主機(jī)故障時(shí),所述應(yīng)用組切換裝置還包括:
遷移模塊,用于將應(yīng)用組的虛擬物理地址從主機(jī)遷移至備機(jī)中,以使切換前后的應(yīng)用組的地址保持不變。
應(yīng)當(dāng)理解,傳統(tǒng)的網(wǎng)絡(luò)環(huán)境中,上游設(shè)備開啟了arp(addressresolutionprotocol,地址解析協(xié)議)綁定,會(huì)導(dǎo)致應(yīng)用組切換后無(wú)法使用新mac地址。那么切換前后的應(yīng)用組的地址不同,會(huì)導(dǎo)致業(yè)務(wù)中斷。
而本實(shí)施例中,通過(guò)mac地址偽裝,可保證切換后服務(wù)ip正常使用,應(yīng)用組1包含虛擬服務(wù)vs1,vs1引用浮動(dòng)ip1,ip1配置了虛擬mac地址mac1。當(dāng)ad1發(fā)生故障,應(yīng)用組1主機(jī)切換至ad2,ip1在ad2上生效,ad2使用mac1廣播ip1的arp,若ad2收到對(duì)于ip1的arp請(qǐng)求廣播,使用mac1返回arp應(yīng)答。通過(guò)mac地址偽裝,當(dāng)應(yīng)用組發(fā)生故障切換時(shí),遷移模塊將ip地址轉(zhuǎn)移至其他設(shè)備,可使ip地址使用的mac地址不變,以達(dá)到最小切換時(shí)間,也可以滿足上游設(shè)備的arp綁定需求。
本實(shí)施例中,通過(guò)使用虛擬的mac地址偽裝,應(yīng)用組切換時(shí)浮動(dòng)ip對(duì)應(yīng)的mac地址跟隨應(yīng)用組一起切換到備機(jī),這樣切換后應(yīng)用組的mac地址保持不變,以達(dá)到最快的切換速度,將客戶業(yè)務(wù)的中斷時(shí)間減少到最短,保證了業(yè)務(wù)的正常進(jìn)行。
需要說(shuō)明的是,在本文中,術(shù)語(yǔ)“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者系統(tǒng)不僅包括那些要素,而且還包括沒(méi)有明確列出的其它要素,或者是還包括為這種過(guò)程、方法、物品或者系統(tǒng)所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過(guò)程、方法、物品或者系統(tǒng)中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。