一種計算機信息系統(tǒng)及其動態(tài)容災(zāi)方法
【專利摘要】本申請公開了一種計算機信息系統(tǒng)及其動態(tài)容災(zāi)方法,包括:按照服務(wù)類別劃分的兩個以上的服務(wù)集群,所述每一服務(wù)集群中包括兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點具備本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯;還包括動態(tài)容災(zāi)節(jié)點,用于設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略,監(jiān)測所述各服務(wù)集群的運行狀況;在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。利用本發(fā)明,可以提高計算機信息系統(tǒng)的健壯性。
【專利說明】一種計算機信息系統(tǒng)及其動態(tài)容災(zāi)方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機信息處理【技術(shù)領(lǐng)域】,尤其涉及一種計算機信息系統(tǒng)及其動態(tài)容災(zāi)方法。
【背景技術(shù)】
[0002]在計算機信息系統(tǒng)中,為了保證信息服務(wù)的安全性和穩(wěn)定性,需要建立兩套或多套功能相同的服務(wù)處理系統(tǒng),在這些兩套或多套的服務(wù)處理系統(tǒng)之間可以實現(xiàn)功能容災(zāi),即當一個服務(wù)處理系統(tǒng)發(fā)生問題,則可以由另外的服務(wù)處理系統(tǒng)來對外提供服務(wù),因此可以保證對外服務(wù)的安全性和穩(wěn)定性。容災(zāi)是系統(tǒng)高可用性技術(shù)的一個重要組成部分,需要預先考慮到外界環(huán)境或突發(fā)事件對系統(tǒng)的影響,避免災(zāi)難發(fā)生時系統(tǒng)無法提供服務(wù)或數(shù)據(jù)丟失。所謂的災(zāi)難是指機器硬件故障、網(wǎng)絡(luò)故障、程序崩潰、突發(fā)事件導致過載等無法提供正常服務(wù)的事件。
[0003]目前業(yè)界通常在計算機系統(tǒng)的組成和服務(wù)架構(gòu)上實現(xiàn)容災(zāi)方案。
[0004]圖1為現(xiàn)有技術(shù)一的一種互聯(lián)網(wǎng)服務(wù)系統(tǒng)架構(gòu)的示意圖。參見圖1,所述互聯(lián)網(wǎng)服務(wù)系統(tǒng)就是計算機信息系統(tǒng)的一種具體應(yīng)用領(lǐng)域,該架構(gòu)中,所有服務(wù)節(jié)點對等,例如圖1中具有101、102、和103三個對等的服務(wù)節(jié)點,每個服務(wù)節(jié)點同時對外提供所有服務(wù)(假定服務(wù)類別分為A、B、C三類)的處理邏輯,這些對等的服務(wù)節(jié)點組成了一個服務(wù)集群。圖1所述的系統(tǒng)架構(gòu)目前被許多網(wǎng)站采用,其容災(zāi)原理是客戶端發(fā)起一種類型的服務(wù)請求后,通過系統(tǒng)的傳輸控制協(xié)議(TCP, Transmission Control Protocol)層的負載均衡系統(tǒng)將該服務(wù)請求隨機分配到所述服務(wù)集群中的某一個服務(wù)節(jié)點上,由該服務(wù)節(jié)點響應(yīng)該服務(wù)請求。當某個服務(wù)節(jié)點發(fā)生災(zāi)難事件如硬件故障時,則服務(wù)請求會分配給其它運行正常的服務(wù)節(jié)點進行響應(yīng)。
[0005]圖2為現(xiàn)有技術(shù)二的一種互聯(lián)網(wǎng)服務(wù)系統(tǒng)架構(gòu)的示意圖。參見圖2,該架構(gòu)中,按照服務(wù)類型劃分成三個服務(wù)集群,每個服務(wù)集群內(nèi)部的所有服務(wù)節(jié)點只提供一種固定類型的服務(wù),在一個服務(wù)集群內(nèi)部的服務(wù)節(jié)點是對等的。例如圖2中所述服務(wù)集群201提供A類的服務(wù),服務(wù)集群202提供B類的服務(wù),服務(wù)集群203提供C類的服務(wù)。以服務(wù)集群201為例,其中的每個服務(wù)節(jié)點211、212、213都只具備A類服務(wù)的處理邏輯,客戶端中設(shè)置有每種類型服務(wù)對應(yīng)的服務(wù)集群的地址,當客戶端發(fā)起A類服務(wù)的服務(wù)請求后,該A類服務(wù)請求發(fā)送到服務(wù)集群201,然后由TCP層的負載均衡系統(tǒng)將該服務(wù)請求隨機分配到該服務(wù)集群201中的某一個服務(wù)節(jié)點上,由該服務(wù)節(jié)點響應(yīng)該服務(wù)請求。當服務(wù)集群201中的某個服務(wù)節(jié)點發(fā)生災(zāi)難事件如硬件故障時,則A類服務(wù)請求會分配給其它運行正常的服務(wù)節(jié)點進行響應(yīng)。圖2所述的系統(tǒng)架構(gòu)目前通常被許多互聯(lián)網(wǎng)游戲業(yè)務(wù)系統(tǒng)所采用。
[0006]但是,上述現(xiàn)有技術(shù)存在如下技術(shù)問題:
[0007]整個計算機信息系統(tǒng)的健壯性差。例如在現(xiàn)有技術(shù)一中,如果所述服務(wù)集群內(nèi)部故障的服務(wù)節(jié)點達到一定數(shù)目,系統(tǒng)實際負載大于正常工作的服務(wù)節(jié)點能承受的負載時,系統(tǒng)會因過載而導致整體不可用。在現(xiàn)有技術(shù)二中,雖然將不同類型的服務(wù)采用不同的服務(wù)集群分散處理,但是每個服務(wù)集群內(nèi)部也存在跟現(xiàn)有技術(shù)一同樣的健壯性差的問題,即如果一個服務(wù)集群內(nèi)部故障的服務(wù)節(jié)點達到一定數(shù)目,在該服務(wù)集群的實際負載大于正常工作的服務(wù)節(jié)點能承受的負載時,該服務(wù)集群會因過載而導致整體不可用,從而導致無法對外提供對應(yīng)類型的服務(wù)。
【發(fā)明內(nèi)容】
[0008]有鑒于此,本發(fā)明的主要目的在于提供一種計算機信息系統(tǒng)及其動態(tài)容災(zāi)方法,以提高計算機信息系統(tǒng)的健壯性。
[0009]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0010]一種計算機信息系統(tǒng),包括:
[0011]按照服務(wù)類別劃分的兩個以上的服務(wù)集群,所述每一服務(wù)集群中包括兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點具備本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯,所述服務(wù)處理邏輯用于響應(yīng)到達本服務(wù)集群的服務(wù)請求;
[0012]動態(tài)容災(zāi)節(jié)點,用于設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略,監(jiān)測所述各服務(wù)集群的運行狀況;在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
[0013]一種計算機信息系統(tǒng)的動態(tài)容災(zāi)方法,包括:
[0014]按照服務(wù)類別劃分兩個以上的服務(wù)集群,在所述每一服務(wù)集群中設(shè)置兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點設(shè)置本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯;
[0015]設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略;
[0016]監(jiān)測所述各服務(wù)集群的運行狀況,在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明按照服務(wù)類別劃分為兩個以上的服務(wù)集群,在所述每一服務(wù)集群中設(shè)置兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點都是對等節(jié)點,即都要設(shè)置本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯;同時,設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略,在各服務(wù)集群都運行正常的情況下,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別固定對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。這樣,整個計算機信息系統(tǒng)內(nèi)的所有服務(wù)節(jié)點都是對等的,可以根據(jù)各服務(wù)集群的運行狀況,動態(tài)調(diào)整相應(yīng)服務(wù)集群對服務(wù)請求的響應(yīng)方式,即使某個服務(wù)集群內(nèi)的故障服務(wù)節(jié)點達到一定數(shù)目而不能提供對外服務(wù)時,也可以將該服務(wù)集群對應(yīng)的響應(yīng)的服務(wù)請求轉(zhuǎn)移到其它運行正常的服務(wù)集群上,因此整個計算機信息系統(tǒng)對外提供的服務(wù)并不會輕易中斷,提高了計算機信息系統(tǒng)的健壯性。
【專利附圖】
【附圖說明】[0018]圖1為現(xiàn)有技術(shù)一的一種互聯(lián)網(wǎng)服務(wù)系統(tǒng)架構(gòu)的示意圖;
[0019]圖2為現(xiàn)有技術(shù)二的一種互聯(lián)網(wǎng)服務(wù)系統(tǒng)架構(gòu)的示意圖;
[0020]圖3為本發(fā)明所述計算機信息系統(tǒng)動態(tài)容災(zāi)方法的一種流程圖;
[0021]圖4為本發(fā)明所述計算機信息系統(tǒng)的一種組成架構(gòu)示意圖;
[0022]圖5為本發(fā)明所述計算機信息系統(tǒng)的又一種組成架構(gòu)示意圖。
【具體實施方式】
[0023]下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明
[0024]圖3為本發(fā)明所述計算機信息系統(tǒng)動態(tài)容災(zāi)方法的一種流程圖。參見圖3,本發(fā)明的計算機信息系統(tǒng)的動態(tài)容災(zāi)方法包括:
[0025]301、按照服務(wù)類別劃分兩個以上的服務(wù)集群,在所述每一服務(wù)集群中設(shè)置兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點設(shè)置本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯,以響應(yīng)到達本服務(wù)集群的服務(wù)請求;
[0026]302、設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略;
[0027]303、監(jiān)測所述各服務(wù)集群的運行狀況,在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
[0028]與本發(fā)明所述的方法對應(yīng),本發(fā)明還公開了一種計算機信息系統(tǒng)。
[0029]圖4為本發(fā)明所述計算機信息系統(tǒng)的一種組成架構(gòu)示意圖。參見圖4,本發(fā)明的計算機信息系統(tǒng)包括:
[0030]按照服務(wù)類別劃分的兩個以上的服務(wù)集群,例如圖3中為三個服務(wù)集群401、402、和403,所述每一服務(wù)集群中包括兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點具備本計算機信息系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯,所述服務(wù)處理邏輯用于響應(yīng)到達本服務(wù)集群的服務(wù)請求。即本發(fā)明所述的所有服務(wù)集群中的所有的服務(wù)節(jié)點在功能上都是對等的,不論哪種類型的服務(wù)請求(例如圖3中假設(shè)分為A、B、C三種服務(wù)類型),所述任一個服務(wù)節(jié)點都能夠進行該服務(wù)請求的響應(yīng)處理。
[0031]除了所述服務(wù)集群,本發(fā)明的計算機信息系統(tǒng)還包括動態(tài)容災(zāi)節(jié)點,即圖4中的所述D節(jié)點404,該動態(tài)容災(zāi)節(jié)點用于設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略,監(jiān)測所述各服務(wù)集群的運行狀況;在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
[0032]所述動態(tài)容災(zāi)節(jié)點的數(shù)量可以為一個,也可以為兩個或兩個以上,如圖5為本發(fā)明所述計算機信息系統(tǒng)的又一種組成架構(gòu)示意圖,其中包括可以相互備份和相互容災(zāi)切換的主動態(tài)容災(zāi)節(jié)點541和備動態(tài)容災(zāi)節(jié)點542,所述主動態(tài)容災(zāi)節(jié)點541和備動態(tài)容災(zāi)節(jié)點542組成了一個提供動態(tài)容災(zāi)服務(wù)的容災(zāi)服務(wù)集群504。在正常情況下,由其中的主動態(tài)容災(zāi)節(jié)點提供動態(tài)容災(zāi)服務(wù),當主動態(tài)容災(zāi)節(jié)點運行異常時,可以切換到備動態(tài)容災(zāi)節(jié)點繼續(xù)運行,該備動態(tài)容災(zāi)節(jié)點切換為主動態(tài)容災(zāi)節(jié)點,前述的主動態(tài)容災(zāi)節(jié)點切換為備動態(tài)容災(zāi)節(jié)點,從而進一步提高整個系統(tǒng)的健壯性。
[0033]所述動態(tài)容災(zāi)策略可以預先設(shè)置,具體設(shè)置的動態(tài)容災(zāi)策略內(nèi)容可以有多種,下面實施例做具體介紹。
[0034]所述動態(tài)容災(zāi)策略中可以包括的策略為:在各服務(wù)集群都運行正常的情況下,各服務(wù)類別的服務(wù)請求由該服務(wù)類別固定對應(yīng)的服務(wù)集群進行響應(yīng)處理。如圖4和圖5所示,在各服務(wù)集群都運行正常的情況下,所述服務(wù)集群401只對外提供A類型的服務(wù),服務(wù)集群402只對外提供B類型的服務(wù),服務(wù)集群403只對外提供C類型的服務(wù)。這種固定的對應(yīng)關(guān)系屬于所述動態(tài)容災(zāi)策略信息中的一部分,需要預先設(shè)置好,具體內(nèi)容包括每個服務(wù)類型與其對應(yīng)的服務(wù)集群地址的對應(yīng)關(guān)系。在某個服務(wù)集群運行異常的情況下,則需要對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整,具體的調(diào)整指令信息也屬于所述動態(tài)容災(zāi)策略的一部分,而且通常每種服務(wù)類型的服務(wù)集群都會有對應(yīng)的包括所述調(diào)整指令的動態(tài)容災(zāi)策略。
[0035]所述步驟303中,所述監(jiān)測各服務(wù)集群的運行狀況的具體方法可以有多種,例如典型的兩種為:
[0036]第一種監(jiān)測方法為:由所述各服務(wù)集群中的各服務(wù)節(jié)點定時(例如每隔Tl秒)向所述動態(tài)容災(zāi)節(jié)點上報自身的負載信息,所述負載信息可以包括常規(guī)的負載信息,例如CPU占用量、網(wǎng)絡(luò)占用量等。動態(tài)容災(zāi)節(jié)點根據(jù)上報情況以及上報的負載信息判斷各服務(wù)集群的運行狀況。例如,所述上報情況是指所述服務(wù)節(jié)點是否每隔Tl秒就上報一次負載信息,如果上報的次數(shù)或頻率少于指定的值則判定該服務(wù)節(jié)點異常;然后根據(jù)上報的負載信息判斷服務(wù)節(jié)點的負載是否超過指定的值,如果超過則判定該服務(wù)節(jié)點運行異常;最后判斷每個服務(wù)集群內(nèi)部的異常服務(wù)節(jié)點的數(shù)量是否超過指定的值,如果超過則判定該服務(wù)集群運行異常,否則判定該服務(wù)集群運行正常。
[0037]或者,第二種監(jiān)測方法為:由請求服務(wù)的客戶端定時(例如每隔T2秒)向動態(tài)容災(zāi)節(jié)點上報各類服務(wù)請求的數(shù)量和響應(yīng)狀況,動態(tài)容災(zāi)節(jié)點根據(jù)所上報的各類服務(wù)請求的數(shù)量和響應(yīng)狀況判斷對應(yīng)類別的服務(wù)集群的運行狀況。例如如果某種服務(wù)類型的服務(wù)請求中發(fā)生響應(yīng)失敗的數(shù)量超過指定的閾值,則判定該服務(wù)類型固定對應(yīng)的服務(wù)集群運行異常,否則可以判定該服務(wù)類型對應(yīng)的服務(wù)集群運行正常。
[0038]通過上述監(jiān)測方法,所述動態(tài)容災(zāi)節(jié)點可以隨時監(jiān)測到各個服務(wù)集群的運行狀況,并根據(jù)運行狀況和各服務(wù)集群對應(yīng)的動態(tài)容災(zāi)策略進行調(diào)整。
[0039]本發(fā)明可以將所述每種服務(wù)類型及其對應(yīng)的服務(wù)集群地址的對應(yīng)關(guān)系信息設(shè)置在各客戶端,例如具體可以預先設(shè)置在客戶端,或者在系統(tǒng)啟動后由所述動態(tài)容災(zāi)節(jié)點發(fā)送給各客戶端。在計算機信息系統(tǒng)初始啟動后,默認各服務(wù)集群都運行正常,這時如果客戶端發(fā)起某種類型的服務(wù)請求,則根據(jù)所述對應(yīng)關(guān)系,將該服務(wù)類型的服務(wù)請求發(fā)送到其對應(yīng)的服務(wù)集群地址進行響應(yīng)處理。例如A類服務(wù)請求發(fā)送給A類服務(wù)集群,B類服務(wù)請求發(fā)送給B類服務(wù)集群,C類服務(wù)請求發(fā)送給C類服務(wù)集群。所述收到服務(wù)請求的服務(wù)集群通過內(nèi)部的TCP層采用負載均衡的方式將所述服務(wù)請求隨機分配到某一個服務(wù)節(jié)點中,由該服務(wù)節(jié)點對該服務(wù)請求進行響應(yīng)處理。當某個服務(wù)節(jié)點發(fā)生災(zāi)難事件如硬件故障時,則服務(wù)集群會將收到的服務(wù)請求分配給其它運行正常的服務(wù)節(jié)點進行響應(yīng)處理。
[0040]在系統(tǒng)啟動運行后,動態(tài)容災(zāi)節(jié)點會通過上述的監(jiān)測方法監(jiān)測各個服務(wù)集群的運行狀況,如果監(jiān)測到某個服務(wù)集群運行異常,則根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
[0041]本發(fā)明中,還提出按照可降級服務(wù)維度劃分的服務(wù)類別的技術(shù)方案。上述所述按照服務(wù)類別劃分服務(wù)集群,所述不同的服務(wù)類別之間是用可降級服務(wù)維度來區(qū)分的。所述可降級服務(wù)是指:該服務(wù)邏輯的部分模塊出現(xiàn)故障時,依然能夠為用戶提供部分服務(wù)來滿足用戶的核心需求,例如互聯(lián)網(wǎng)站用戶的登錄、查看個人信息等需求,則可稱該服務(wù)為可降級服務(wù)。所述可降級服務(wù)維度,是評價可降級服務(wù)可接受的降級幅度,可接受的降級幅度越大,其可降級服務(wù)維度越高。
[0042]例如,上述所提到的A、B、C類服務(wù)可以按照用戶影響、收入影響來劃分并考慮可降級服務(wù)的應(yīng)用場景。以常見的互聯(lián)網(wǎng)服務(wù)為例,A類服務(wù)為核心體驗服務(wù),屬于必須內(nèi)容,用戶無法接受該類服務(wù)出現(xiàn)問題,例如登錄操作等,其可降級服務(wù)維度最低;B類服務(wù)為用戶有損價值服務(wù),用戶能接受該類服務(wù)在較短的時間不可用,例如查看好友的主頁、上傳或下載文件等服務(wù),該類服務(wù)的可降級服務(wù)維度較A類服務(wù)稍高一級;C類服務(wù)為可有損體驗服務(wù),該類服務(wù)只影響用戶體驗,即使較長時間內(nèi)沒辦法修復也不會有大的影響,該類服務(wù)的可降級服務(wù)維度最高。
[0043]如上所述,所述A、B、C類服務(wù)根據(jù)可降級服務(wù)維度由低到高排列。在動態(tài)調(diào)整服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式時,可以根據(jù)不同的可降級服務(wù)維度進行處理。
[0044]例如,所述在某個服務(wù)集群運行異常的情況下,所述動態(tài)容災(zāi)節(jié)點根據(jù)該服務(wù)集群的動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整的具體方式中,包括以下判斷處理步驟:
[0045]判斷其它運行正常的服務(wù)集群的負載情況是否可以承受所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的負載,如果是則調(diào)度所述運行正常的服務(wù)集群來響應(yīng)所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求;否則,針對可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群,停止其中的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,再重復執(zhí)行本判斷處理步驟。
[0046]例如如圖4和圖5所示,如果動態(tài)容災(zāi)節(jié)點通過監(jiān)測發(fā)現(xiàn)A類服務(wù)集群運行異常,則該動態(tài)容災(zāi)節(jié)點首先判斷其它運行正常的服務(wù)集群(例如此處為B類服務(wù)集群和C類服務(wù)集群)的負載情況是否可以承受本因由A類服務(wù)集群對應(yīng)響應(yīng)的A類服務(wù)請求的負載,例如具體可以按照所述服務(wù)節(jié)點或客戶端上報的信息來判斷,具體的判斷方式可以利用現(xiàn)有技術(shù)。
[0047]如果B、C類服務(wù)集群可以承受所述A類服務(wù)請求的負載,則調(diào)度所述運行正常的B、C類服務(wù)集群來響應(yīng)所述A類服務(wù)請求,例如具體可以是將來自客戶端的A類服務(wù)請求平均分布到B、C類服務(wù)集群的每個服務(wù)節(jié)點上進行響應(yīng)處理。
[0048]如果B、C類服務(wù)集群可以承受所述A類服務(wù)請求的負載,由于B、C類服務(wù)集群的可降級服務(wù)維度比A類服務(wù)集群的可降級服務(wù)維度高,則可以調(diào)整B、C類服務(wù)集群的對其服務(wù)請求的響應(yīng),例如具體是停止這些可降級服務(wù)維度高的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理。如果其可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群只有一個,則直接停止該服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理。如果其可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群有兩個以上時,例如此處的B、C類服務(wù)集群的可降級維度都比A類服務(wù)集群高,則屬于這種情況。在這種情況下,先停止其中的最高級可降級服務(wù)維度的服務(wù)集群(如此處是C類服務(wù)集群)對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,再重復執(zhí)行所述判斷處理步驟;如果所述運行正常的服務(wù)集群(此處是B和C類服務(wù)集群)的負載情況依然不可以承受所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的負載,則再停止低一級可降級服務(wù)維度的服務(wù)集群(例如此處是B類服務(wù)集群)對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理。如果其可降級服務(wù)維度比發(fā)生異常的A類服務(wù)集群高的服務(wù)集群有三個以上,則再重復執(zhí)行所述判斷處理步驟,直到所述運行正常的服務(wù)集群的負載情況可以承受所述A類服務(wù)請求的負載,或者直到可降級服務(wù)維度比A類服務(wù)集群高的所有服務(wù)集群都被停止對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理。
[0049]在互聯(lián)網(wǎng)信息服務(wù)中,有一種可以離線響應(yīng)的服務(wù),其服務(wù)數(shù)據(jù)更新并不頻繁,因此可以存儲在服務(wù)端,也可以存儲在客戶端,該類服務(wù)的服務(wù)請求可以由服務(wù)端來響應(yīng)處理,也可以由客戶端利用存儲在客戶端中的數(shù)據(jù)進行離線響應(yīng)處理。例如,對于一些基于關(guān)系鏈的互聯(lián)網(wǎng)服務(wù)就是屬于這種可以離線響應(yīng)的服務(wù),當關(guān)系鏈出現(xiàn)故障或者壓力過大時,可以啟用本地關(guān)系鏈模式,客戶端在每天第一次登錄的時候拉取關(guān)系鏈數(shù)據(jù)存儲到本地客戶端,后續(xù)不再拉取,這樣即使服務(wù)端的關(guān)系鏈服務(wù)不可用,則客戶端也仍然可以離線響應(yīng)關(guān)系鏈服務(wù)請求,從而保證用戶可以正常使用關(guān)系鏈服務(wù)。
[0050]因此,在本發(fā)明的一種實施例中,如果所述可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群對應(yīng)類別的服務(wù)為所述可以離線響應(yīng)的服務(wù)時,例如如果上述的C類服務(wù)為可以離線響應(yīng)的服務(wù)時,則停止該C類服務(wù)集群對C類服務(wù)請求的響應(yīng)處理具體可以是調(diào)整該C類服務(wù)集群對C類服務(wù)請求的響應(yīng)方式,例如具體為:將該C類服務(wù)請求改為離線響應(yīng)方式,指示該服務(wù)請求的發(fā)起方客戶端按照離線響應(yīng)方式在本地處理該服務(wù)請求。
[0051]在本發(fā)明中,所述動態(tài)容災(zāi)節(jié)點對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整的具體操作中,包括:所述調(diào)度運行正常的服務(wù)集群來響應(yīng)所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求,和/或所述停止某個服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,和/或所述調(diào)整某類服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)方式,這些方法的具體實現(xiàn)方式為:
[0052]a)生成包括相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群地址和/或響應(yīng)方式信息的調(diào)度信息。例如動態(tài)容災(zāi)節(jié)點要執(zhí)行的調(diào)整操作假設(shè)為:調(diào)度B和C類服務(wù)集群來響應(yīng)A類服務(wù)請求,并且要將C類服務(wù)請求的響應(yīng)方式改為離線響應(yīng)方式,同時停止B類服務(wù)集群對B類服務(wù)請求的響應(yīng)處理,則所述調(diào)度信息中包括:A類服務(wù)請求對應(yīng)的響應(yīng)服務(wù)集群的地址為B和C類服務(wù)集群的地址,B類服務(wù)請求對應(yīng)的響應(yīng)服務(wù)集群地址為空,C類服務(wù)請求的響應(yīng)方式改為離線響應(yīng)。
[0053]b)將所述調(diào)度信息發(fā)送給客戶端。例如具體是生成調(diào)度信息后主動發(fā)送給客戶端,或者是由客戶端每隔T3秒查詢一次動態(tài)容災(zāi)節(jié)點,動態(tài)容災(zāi)節(jié)點將最新的調(diào)度信息以響應(yīng)包的方式發(fā)送給客戶端。
[0054]c)客戶端根據(jù)收到的調(diào)度信息向相應(yīng)的服務(wù)集群發(fā)起服務(wù)請求和/或按照所述響應(yīng)方式信息處理對應(yīng)的服務(wù)請求。例如根據(jù)上述步驟a)所述的調(diào)度信息,客戶端將A類服務(wù)請求發(fā)送給B和C類服務(wù)集群,B類服務(wù)請求則直接放棄發(fā)送,C類服務(wù)請求由客戶端本地按照離線響應(yīng)方式處理。[0055]如圖4和圖5所示,如果動態(tài)容災(zāi)節(jié)點通過監(jiān)測發(fā)現(xiàn)B類服務(wù)集群運行異常,可以則同樣按照上述的判斷處理步驟進行處理,即:判斷其它運行正常的A和C類服務(wù)集群的負載情況是否可以承受所述發(fā)生異常的B類服務(wù)集群對應(yīng)的B類服務(wù)請求的負載,如果是則調(diào)度所述運行正常的A和C類服務(wù)集群來響應(yīng)所述B類服務(wù)請求;否則,針對可降級服務(wù)維度比B類服務(wù)集群高的服務(wù)集群即所述C類服務(wù)集群,停止該C類服務(wù)集群對C類服務(wù)請求的響應(yīng)處理,之后再判斷A和C類服務(wù)集群的負載情況是否可以承受B類服務(wù)請求的負載,如果是則調(diào)度所述運行正常的A和C類服務(wù)集群來響應(yīng)所述B類服務(wù)請求,否則不再處理。
[0056]另外,針對所述B類服務(wù)請求的動態(tài)容災(zāi)策略也可以有其它方式,例如判斷當前是否為業(yè)務(wù)高峰期,如果是則不進行上述判斷處理步驟的調(diào)整,如果當前為非高峰期,則再執(zhí)行上述的判斷處理步驟進行調(diào)整。
[0057]如圖4和圖5所示,如果動態(tài)容災(zāi)節(jié)點通過監(jiān)測發(fā)現(xiàn)C類服務(wù)集群運行異常,可以則同樣按照上述的判斷處理步驟進行處理,即:判斷其它運行正常的A和B類服務(wù)集群的負載情況是否可以承受所述發(fā)生異常的C類服務(wù)集群對應(yīng)的C類服務(wù)請求的負載,如果是則調(diào)度所述運行正常的A和C類服務(wù)集群來響應(yīng)所述C類服務(wù)請求;否則,此時由于C類服務(wù)集群的可降級服務(wù)維度已經(jīng)是最高,因此只能調(diào)整該C類服務(wù)請求的響應(yīng)方式,即將該C類服務(wù)請求改為離線響應(yīng)方式,指示該服務(wù)請求的發(fā)起方按照離線響應(yīng)方式在本地處理該服務(wù)請求。
[0058]當然,針對所述C類服務(wù)請求的動態(tài)容災(zāi)策略也可以有其它方式,例如如果動態(tài)容災(zāi)節(jié)點通過監(jiān)測發(fā)現(xiàn)C類服務(wù)集群運行異常,則也可以直接調(diào)整該C類服務(wù)請求的響應(yīng)方式,即將該C類服務(wù)請求改為離線響應(yīng)方式,指示該服務(wù)請求的發(fā)起方按照離線響應(yīng)方式在本地處理該服務(wù)請求。
[0059]當所述各服務(wù)集群又都恢復正常的情況下,則所述動態(tài)容災(zāi)節(jié)點繼續(xù)將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理。例如具體的方式是動態(tài)容災(zāi)節(jié)點給客戶端發(fā)出服務(wù)集群運行正常的調(diào)度信息,客戶端在收到該調(diào)度信息后,如果客戶端發(fā)起某種類型的服務(wù)請求,則根據(jù)之前存儲的每種服務(wù)類型及其對應(yīng)的服務(wù)集群地址的對應(yīng)關(guān)系信息,將該服務(wù)類型的服務(wù)請求發(fā)送到其對應(yīng)的服務(wù)集群地址進行響應(yīng)處理。例如A類服務(wù)請求發(fā)送給A類服務(wù)集群,B類服務(wù)請求發(fā)送給B類服務(wù)集群,C類服務(wù)請求發(fā)送給C類服務(wù)集群。
[0060]如上所述,本發(fā)明與現(xiàn)有技術(shù)相比,整個計算機信息系統(tǒng)內(nèi)的所有服務(wù)節(jié)點都是對等的,可以根據(jù)各服務(wù)集群的運行狀況,動態(tài)調(diào)整相應(yīng)服務(wù)集群對服務(wù)請求的響應(yīng)方式,即使某個服務(wù)集群內(nèi)的故障服務(wù)節(jié)點達到一定數(shù)目而不能提供對外服務(wù)時,也可以將該服務(wù)集群對應(yīng)的響應(yīng)的服務(wù)請求轉(zhuǎn)移到其它運行正常的服務(wù)集群上,因此整個計算機信息系統(tǒng)對外提供的服務(wù)并不會輕易中斷,提高了計算機信息系統(tǒng)的健壯性,提高了對突發(fā)式負載和故障的應(yīng)對能力。
[0061]另外,本發(fā)明所述各個服務(wù)節(jié)點由于都是對等的,即其中都包括相同的處理邏輯,因此本發(fā)明的可擴展性非常強。
[0062]還有,本發(fā)明可以按照可降級服務(wù)的維度對服務(wù)類型及其對應(yīng)的服務(wù)集群進行分類,當某個服務(wù)集群出現(xiàn)異常時,優(yōu)先保證可降級服務(wù)維度低的服務(wù)(即相對核心的服務(wù))能夠繼續(xù)提供服務(wù),而對于可降級服務(wù)維度高的服務(wù)(即相對有損的服務(wù))可以進行停止或改為離線響應(yīng)方式,這樣可以在容災(zāi)時保證核心服務(wù)的穩(wěn)定性,提高用戶的滿意度。
[0063]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1.一種計算機信息系統(tǒng),其特征在于,包括: 按照服務(wù)類別劃分的兩個以上的服務(wù)集群,所述每一服務(wù)集群中包括兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點具備本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯,所述服務(wù)處理邏輯用于響應(yīng)到達本服務(wù)集群的服務(wù)請求; 動態(tài)容災(zāi)節(jié)點,用于設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略,監(jiān)測所述各服務(wù)集群的運行狀況;在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述動態(tài)容災(zāi)節(jié)點的數(shù)量為兩個或兩個以上,其中包括可以相互備份和相互容災(zāi)切換的主動態(tài)容災(zāi)節(jié)點和備動態(tài)容災(zāi)節(jié)點。
3.一種計算機信息系統(tǒng)的動態(tài)容災(zāi)方法,其特征在于,包括: 按照服務(wù)類別劃分兩個以上的服務(wù)集群,在所述每一服務(wù)集群中設(shè)置兩個以上的服務(wù)節(jié)點;每個服務(wù)節(jié)點設(shè)置本系統(tǒng)內(nèi)的所有服務(wù)類型的服務(wù)處理邏輯; 設(shè)置所述各服務(wù)集群的動態(tài)容災(zāi)策略; 監(jiān)測所述各服務(wù)集群的運行狀況,在各服務(wù)集群都運行正常的情況下,根據(jù)所述動態(tài)容災(zāi)策略,將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理;在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整?!?br>
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述服務(wù)類別為按照可降級服務(wù)維度劃分的服務(wù)類別; 所述在某個服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整,具體包括以下判斷處理步驟: 判斷運行正常的服務(wù)集群的負載情況是否可以承受所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的負載,如果是則調(diào)度所述運行正常的服務(wù)集群來響應(yīng)所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求;否則,針對可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群,停止其中的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,再重復執(zhí)行本判斷處理步驟。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群有兩個以上時,則所述停止其中的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,具體包括: 先停止其中的最高級可降級服務(wù)維度的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,再重復執(zhí)行所述判斷處理步驟;如果所述運行正常的服務(wù)集群的負載情況依然不可以承受所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的負載,則再停止低一級可降級服務(wù)維度的服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,再重復執(zhí)行所述判斷處理步驟,直到所述運行正常的服務(wù)集群的負載情況可以承受所述發(fā)生異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的負載,或者直到可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的所有服務(wù)集群都被停止對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述可降級服務(wù)維度比發(fā)生異常的服務(wù)集群高的服務(wù)集群對應(yīng)類別的服務(wù)為可以離線響應(yīng)的服務(wù)時,則停止該服務(wù)集群對其對應(yīng)類別的服務(wù)請求的響應(yīng)處理,具體包括: 將該服務(wù)集群對應(yīng)類別的服務(wù)請求改為離線響應(yīng)方式,指示該服務(wù)請求的發(fā)起方按照離線響應(yīng)方式在本地處理該服務(wù)請求。
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述運行異常的服務(wù)集群對應(yīng)類別的服務(wù)為可以離線響應(yīng)的服務(wù)時,則:所述在該服務(wù)集群運行異常的情況下,根據(jù)該服務(wù)集群的所述動態(tài)容災(zāi)策略,對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整,包括: 調(diào)整所述運行異常的服務(wù)集群對應(yīng)類別的服務(wù)請求的響應(yīng)方式,具體為:將該運行異常的服務(wù)集群對應(yīng)類別的服務(wù)請求改為離線響應(yīng)方式,指示該服務(wù)請求的發(fā)起方按照離線響應(yīng)方式在本地處理該服務(wù)請求。
8.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述監(jiān)測各服務(wù)集群的運行狀況,具體包括: 由所述各服務(wù)集群中的各服務(wù)節(jié)點定時上報自身的負載信息,根據(jù)上報情況以及上報的負載信息判斷各服務(wù)集群的運行狀況; 或者,由請求服務(wù)的客戶端定時上報各類服務(wù)請求的數(shù)量和響應(yīng)狀況,根據(jù)所上報的各類服務(wù)請求的數(shù)量和響應(yīng)狀況判斷對應(yīng)類別的服務(wù)集群的運行狀況。
9.根據(jù)權(quán)利要求3至8任一項所述的方法,其特征在于,所述將各服務(wù)類別的服務(wù)請求調(diào)度到該服務(wù)類別對應(yīng)的服務(wù)集群進行響應(yīng)處理,具體包括: 將各種服務(wù)類型及其對應(yīng)的服務(wù)集群地址的對應(yīng)關(guān)系信息設(shè)置在客戶端,客戶端發(fā)起某種類型的服務(wù)請求時,根據(jù)所述對應(yīng)關(guān)系,將該服務(wù)類型的服務(wù)請求發(fā)送到其對應(yīng)的服務(wù)集群地址進行響應(yīng)處理。
10.根據(jù)權(quán)利要求3至8任一項所述的方法,其特征在于,所述對相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群和/或響應(yīng)方式進行動態(tài)調(diào)整,具體為: 生成包括相應(yīng)服務(wù)類別的服務(wù)請求的響應(yīng)服務(wù)集群地址和/或響應(yīng)方式信息的調(diào)度信息,將所述調(diào)度信息發(fā)送給客戶端,客戶端根據(jù)收到的調(diào)度信息向相應(yīng)的服務(wù)集群發(fā)起服務(wù)請求和/或按照所述響應(yīng)方式信息處理對應(yīng)的服務(wù)請求。
【文檔編號】H04L12/24GK103580902SQ201210277988
【公開日】2014年2月12日 申請日期:2012年8月7日 優(yōu)先權(quán)日:2012年8月7日
【發(fā)明者】王旭新, 薛鵬 申請人:騰訊科技(深圳)有限公司