亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

通信方法和系統(tǒng)與流程

文檔序號(hào):11524255閱讀:292來源:國(guó)知局
通信方法和系統(tǒng)與流程

本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種通信方法和系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,各種各樣的網(wǎng)絡(luò)應(yīng)用如雨后春筍般不斷涌現(xiàn),比如視頻直播類應(yīng)用、網(wǎng)絡(luò)游戲類應(yīng)用等,以豐富人們的娛樂生活。

對(duì)于一應(yīng)用提供方來說,可能有海量用戶使用其提供的網(wǎng)絡(luò)應(yīng)用,如果該應(yīng)用提供方僅部署一臺(tái)服務(wù)器,很有可能無法滿足海量用戶的使用需求,因此,應(yīng)用提供方往往需要配置多臺(tái)服務(wù)器。當(dāng)配置有多臺(tái)服務(wù)器時(shí),當(dāng)用戶需要使用網(wǎng)絡(luò)應(yīng)用時(shí),為該用戶分配哪個(gè)服務(wù)器為其提供服務(wù)是需要面臨的首要問題。進(jìn)一步地,在進(jìn)行服務(wù)器分配的過程中,如何實(shí)現(xiàn)盡量平均的分配,以使得各服務(wù)器的接入用戶相對(duì)均衡,并且保證為用戶分配的服務(wù)器可用的,是亟待解決的問題。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明實(shí)施例提供一種通信方法和系統(tǒng),用以為用戶分配可用的服務(wù)器,且提高服務(wù)器分配的均衡性。

本發(fā)明實(shí)施例提供一種通信方法,實(shí)現(xiàn)于管理平臺(tái)側(cè),包括:

接收客戶端發(fā)送的服務(wù)器分配請(qǐng)求,所述服務(wù)器分配請(qǐng)求中包括所述客戶端對(duì)應(yīng)的全局唯一標(biāo)識(shí)符,所述全局唯一標(biāo)識(shí)符由所述客戶端采用預(yù)設(shè)散列算法對(duì)所述客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)計(jì)算獲得;

獲取正常服務(wù)器數(shù)量,所述正常服務(wù)器是指工作狀態(tài)正常的服務(wù)器;

以所述全局唯一標(biāo)識(shí)符的后n位字符的加和對(duì)所述正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,根據(jù)運(yùn)算結(jié)果確定目標(biāo)服務(wù)器;

向所述客戶端發(fā)送所述目標(biāo)服務(wù)器的ip地址,以供所述客戶端與所述目標(biāo)服務(wù)器建立通信連接。

本發(fā)明實(shí)施例提供另一種通信方法,實(shí)現(xiàn)于用戶的客戶端側(cè),包括:

采用預(yù)設(shè)散列算法對(duì)客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)進(jìn)行計(jì)算,以獲得所述客戶端對(duì)應(yīng)的全局唯一標(biāo)識(shí)符;

向管理平臺(tái)發(fā)送服務(wù)器分配請(qǐng)求,所述服務(wù)器分配請(qǐng)求中包括所述全局唯一標(biāo)識(shí)符,以使所述管理平臺(tái)根據(jù)所述全局唯一標(biāo)識(shí)符的后n位字符的加和對(duì)當(dāng)前獲得的正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,以根據(jù)運(yùn)算結(jié)果確定目標(biāo)服務(wù)器;

接收所述管理平臺(tái)發(fā)送的所述目標(biāo)服務(wù)器的ip地址,以根據(jù)所述ip地址與所述目標(biāo)服務(wù)器建立通信連接。

本發(fā)明實(shí)施例提供一種通信系統(tǒng),包括:

客戶端、管理平臺(tái)和多個(gè)服務(wù)器;

所述客戶端,用于采用預(yù)設(shè)散列算法對(duì)客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)進(jìn)行計(jì)算,以獲得所述客戶端對(duì)應(yīng)的全局唯一標(biāo)識(shí)符;向所述管理平臺(tái)發(fā)送包括所述全局唯一標(biāo)識(shí)符的服務(wù)器分配請(qǐng)求;根據(jù)所述管理平臺(tái)反饋的目標(biāo)服務(wù)器的ip地址,與所述目標(biāo)服務(wù)器建立通信連接;

所述管理平臺(tái),用于響應(yīng)于所述服務(wù)器分配請(qǐng)求,獲取正常服務(wù)器數(shù)量;以所述全局唯一標(biāo)識(shí)符的后n位字符的加和對(duì)所述正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,根據(jù)運(yùn)算結(jié)果確定目標(biāo)服務(wù)器;將所述目標(biāo)服務(wù)器的ip地址發(fā)送至所述客戶端。

本發(fā)明實(shí)施例提供的通信方法和系統(tǒng),客戶端采用預(yù)設(shè)散列算法對(duì)其對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)計(jì)算,以獲得全局唯一標(biāo)識(shí)符(globallyuniqueidentifier,簡(jiǎn)稱guid),進(jìn)而向管理平臺(tái)發(fā)送攜帶該guid的服務(wù)器分配請(qǐng)求,請(qǐng)求管理平臺(tái)為其分配服務(wù)器。管理平臺(tái)首先基于對(duì)各服務(wù)器的工作狀態(tài)正常與否的監(jiān)測(cè),獲得工作狀態(tài)正常的服務(wù)器的數(shù)量,以保證為客戶端分配的服務(wù)器是可用的;進(jìn)而以guid的后n位字符的加和對(duì)該數(shù)量進(jìn)行取余運(yùn)算,確定目標(biāo)服務(wù)器,之后向客戶端發(fā)送該目標(biāo)服務(wù)器的ip地址,以供客戶端與目標(biāo)服務(wù)器建立通信連接。由于獲得的服務(wù)器數(shù)量是對(duì)應(yīng)于當(dāng)前工作狀態(tài)正常的服務(wù)器的,可以保證為客戶端分配的服務(wù)器的有效性。另外,由于不同終端設(shè)備的標(biāo)識(shí)不同、不同應(yīng)用的應(yīng)用標(biāo)識(shí)不同,以這兩類標(biāo)識(shí)作為輸入,使得對(duì)于不同客戶端來說,散列算法的輸入各不相同且長(zhǎng)度較長(zhǎng),從而可以提高不同客戶端對(duì)應(yīng)的guid的差異性,且也可以提高散列算法輸出的散列均勻性,從而基于guid作為服務(wù)器分配依據(jù)也可以提高服務(wù)器的分配均衡性。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實(shí)施例提供的通信方法實(shí)施例一的流程圖;

圖2為本發(fā)明實(shí)施例提供的通信方法實(shí)施例二的流程圖;

圖3為本發(fā)明實(shí)施例提供的通信方法實(shí)施例三的流程圖;

圖4為本發(fā)明實(shí)施例提供的通信系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

在本發(fā)明實(shí)施例中使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實(shí)施例和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義,“多種”一般包含至少兩種,但是不排除包含至少一種的情況。

應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:?jiǎn)为?dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。

應(yīng)當(dāng)理解,盡管在本發(fā)明實(shí)施例中可能采用術(shù)語第一、第二、第三等來描述xxx,但這些xxx不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將xxx彼此區(qū)分開。例如,在不脫離本發(fā)明實(shí)施例范圍的情況下,第一xxx也可以被稱為第二xxx,類似地,第二xxx也可以被稱為第一xxx。

取決于語境,如在此所使用的詞語“如果”、“若”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”或“響應(yīng)于檢測(cè)”。類似地,取決于語境,短語“如果確定”或“如果檢測(cè)(陳述的條件或事件)”可以被解釋成為“當(dāng)確定時(shí)”或“響應(yīng)于確定”或“當(dāng)檢測(cè)(陳述的條件或事件)時(shí)”或“響應(yīng)于檢測(cè)(陳述的條件或事件)”。

還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還存在另外的相同要素。

圖1為本發(fā)明實(shí)施例提供的通信方法實(shí)施例一的流程圖,本實(shí)施例提供的該通信方法可以由一通信系統(tǒng)中的管理平臺(tái)來執(zhí)行,該通信系統(tǒng)中可以包括客戶端、管理平臺(tái)和多個(gè)服務(wù)器。實(shí)際應(yīng)用中,該通信系統(tǒng)中的多個(gè)服務(wù)器可以提供一種網(wǎng)絡(luò)應(yīng)用也可以提供多種網(wǎng)絡(luò)應(yīng)用,但是,對(duì)應(yīng)于某種網(wǎng)絡(luò)應(yīng)用的服務(wù)器的數(shù)量也是多個(gè)。對(duì)應(yīng)的,客戶端可以是對(duì)應(yīng)于一種網(wǎng)絡(luò)應(yīng)用的客戶端,也可以是對(duì)應(yīng)于多種網(wǎng)絡(luò)應(yīng)用的多個(gè)客戶端。如圖1所示,該方法包括如下步驟:

步驟101、接收客戶端發(fā)送的服務(wù)器分配請(qǐng)求,服務(wù)器分配請(qǐng)求中包括客戶端對(duì)應(yīng)的guid。

具體地,該guid由客戶端采用預(yù)設(shè)散列算法對(duì)客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)計(jì)算獲得。

其中,該預(yù)設(shè)散列算法比如可以是md5算法、sha1算法等。

其中,應(yīng)用標(biāo)識(shí)可以是該客戶端所對(duì)應(yīng)的網(wǎng)絡(luò)應(yīng)用的應(yīng)用名稱等用于表示該應(yīng)用的標(biāo)識(shí)。終端設(shè)備標(biāo)識(shí)是指該客戶端所安裝于的終端設(shè)備的標(biāo)識(shí),比如可以包括終端設(shè)備的設(shè)備序列號(hào)、國(guó)際移動(dòng)設(shè)備識(shí)別碼(internationalmobileequipmentidentity,簡(jiǎn)稱imei)等。

值得說明的是,本實(shí)施例中僅舉例說明預(yù)設(shè)散列算法的輸入包括客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí),但是實(shí)際應(yīng)用中,輸入并不限于這兩類標(biāo)識(shí),還可以包括其他標(biāo)識(shí),比如還可以包括用戶標(biāo)識(shí),該用戶標(biāo)識(shí)比如可以為用戶的電話號(hào)碼、應(yīng)用賬號(hào)等。

散列算法的作用是對(duì)輸入的參數(shù)進(jìn)行一定的散列運(yùn)算,得到固定長(zhǎng)度的輸出,即上述guid的長(zhǎng)度固定,一般為128位二進(jìn)制字符,即16字節(jié)字符。通常,為方便表示,可以將其轉(zhuǎn)換為32位十六進(jìn)制字符。

本實(shí)施例中,為了提高散列算法輸出結(jié)果的散列程度,從兩個(gè)層面對(duì)散列算法的輸入?yún)?shù)進(jìn)行設(shè)置:提高輸入?yún)?shù)的長(zhǎng)度,提高輸入?yún)?shù)的差異性。

為此,由于不同終端設(shè)備的標(biāo)識(shí)各不相同、不同應(yīng)用的標(biāo)識(shí)各不相同,甚至不同用戶的標(biāo)識(shí)往往相同的概率也較低,因此,以多種標(biāo)識(shí)作為散列算法的輸入?yún)?shù),可以使得散列算法的輸入?yún)?shù)間具有明顯的差異性。而且,以多種標(biāo)識(shí)作為輸入?yún)?shù),也使得散列算法的輸入長(zhǎng)度較長(zhǎng)。

步驟102、獲取正常服務(wù)器數(shù)量。

其中,正常服務(wù)器是指工作狀態(tài)正常的服務(wù)器。

實(shí)際應(yīng)用中,隨著多個(gè)服務(wù)器的不斷運(yùn)行,可能會(huì)出現(xiàn)部分服務(wù)器工作狀態(tài)異常的情況。本實(shí)施例中,為了保證為客戶端分配的服務(wù)器的有效性,避免為客戶端分配了不能有效工作的服務(wù)器,管理平臺(tái)需要監(jiān)測(cè)各服務(wù)器的工作狀態(tài),以便于了解各服務(wù)器的工作狀態(tài)。

可選地,管理平臺(tái)可以以一定時(shí)間間隔周期性分別對(duì)各服務(wù)器進(jìn)行探活,以監(jiān)測(cè)各服務(wù)器的工作狀態(tài),進(jìn)而確定仍存活的服務(wù)器的數(shù)量作為正常服務(wù)器數(shù)量。和/或,可選地,管理平臺(tái)可以以一定時(shí)間間隔周期性分別獲取各服務(wù)器的負(fù)載壓力,以監(jiān)測(cè)各服務(wù)器的工作狀態(tài),進(jìn)而確定負(fù)載壓力低于預(yù)設(shè)閾值的服務(wù)器的數(shù)量作為正常服務(wù)器數(shù)量。

具體地,上述探活可以是基于管理平臺(tái)與服務(wù)器之間的ping、pong探活機(jī)制實(shí)現(xiàn)的,即管理平臺(tái)向服務(wù)器發(fā)送一ping探活消息,如果在一定時(shí)間內(nèi)接收到該服務(wù)器反饋的pang響應(yīng)消息,則說明該服務(wù)器工作狀態(tài)正常,反之,如果在一定時(shí)間內(nèi)沒有接收到該服務(wù)器反饋的pang響應(yīng)消息,則說明該服務(wù)器工作狀態(tài)異常。

可選地,上述服務(wù)器的負(fù)載壓力可以以服務(wù)器的cpu占用率等參數(shù)表征。

步驟103、以guid的后n位字符的加和對(duì)正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,以根據(jù)運(yùn)算結(jié)果確定目標(biāo)服務(wù)器。

對(duì)應(yīng)于guid的十六進(jìn)制的表示形式,n取值比如為6,即后6位,此時(shí)對(duì)應(yīng)于二進(jìn)制表示形式的后3個(gè)字節(jié)。

需要說明的是,本發(fā)明實(shí)施例中,對(duì)于上述多個(gè)服務(wù)器,邏輯上,可以將這多個(gè)服務(wù)器放入一個(gè)隊(duì)列中。實(shí)際上,放入隊(duì)列中的比如可以是服務(wù)器的標(biāo)識(shí),每個(gè)服務(wù)器具有唯一固定標(biāo)識(shí)。當(dāng)管理平臺(tái)對(duì)多個(gè)服務(wù)器進(jìn)行工作狀態(tài)的監(jiān)測(cè),確定其中部分服務(wù)器工作狀態(tài)異常時(shí),可以將對(duì)應(yīng)的異常服務(wù)器從該隊(duì)列中移除。

舉例來說,假設(shè)總共10臺(tái)服務(wù)器,t1時(shí)刻管理平臺(tái)對(duì)多個(gè)服務(wù)器進(jìn)行工作狀態(tài)的監(jiān)測(cè),確定全部服務(wù)器工作狀態(tài)良好,則此時(shí)的服務(wù)器隊(duì)列中包括按照預(yù)設(shè)順序依次置入的全部服務(wù)器。此時(shí),正常服務(wù)器數(shù)量為10,假設(shè)經(jīng)過步驟103的計(jì)算后得到的運(yùn)算結(jié)果為5,則認(rèn)為排在隊(duì)列中的第6個(gè)服務(wù)器為目標(biāo)服務(wù)器。再假設(shè)t2時(shí)刻管理平臺(tái)對(duì)多個(gè)服務(wù)器進(jìn)行工作狀態(tài)的監(jiān)測(cè),確定其中的某服務(wù)器工作狀態(tài)異常,則此時(shí)的服務(wù)器隊(duì)列中將會(huì)刪除該異常的服務(wù)器,假設(shè)該異常服務(wù)器是原來排在第6個(gè)的服務(wù)器。此時(shí),正常服務(wù)器數(shù)量變?yōu)?,假設(shè)經(jīng)過步驟103的計(jì)算后得到的運(yùn)算結(jié)果仍為5,則由于原來排在第6位的服務(wù)器已經(jīng)被刪除出隊(duì)列,原來排在第7位的服務(wù)器現(xiàn)在變?yōu)榕旁诘?位,則此時(shí)認(rèn)為現(xiàn)在排在隊(duì)列中的第6個(gè)服務(wù)器即原來排在第7位的服務(wù)器為目標(biāo)服務(wù)器。

值得說明的是,本實(shí)施例中,假設(shè)經(jīng)過步驟103計(jì)算得到的為m,則對(duì)應(yīng)于服務(wù)器隊(duì)列中排在第m+1位的服務(wù)器。

步驟104、向客戶端發(fā)送目標(biāo)服務(wù)器的ip地址,以供客戶端與目標(biāo)服務(wù)器建立通信連接。

管理平臺(tái)中預(yù)先存儲(chǔ)有各服務(wù)器的ip地址,具體地,比如存儲(chǔ)有各服務(wù)器的ip地址與服務(wù)器標(biāo)識(shí)間的對(duì)應(yīng)關(guān)系表。從而,在確定出目標(biāo)服務(wù)器標(biāo)識(shí)后,查詢?cè)搶?duì)應(yīng)關(guān)系,得到對(duì)應(yīng)的ip地址。

本實(shí)施例中,客戶端采用預(yù)設(shè)散列算法對(duì)其對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)計(jì)算,以獲得guid,進(jìn)而向管理平臺(tái)發(fā)送攜帶該guid的服務(wù)器分配請(qǐng)求,請(qǐng)求管理平臺(tái)為其分配服務(wù)器。管理平臺(tái)首先基于對(duì)各服務(wù)器的工作狀態(tài)正常與否的監(jiān)測(cè),獲得工作狀態(tài)正常的服務(wù)器的數(shù)量,以保證為客戶端分配的服務(wù)器是可用的。進(jìn)而以guid的后n位字符的加和對(duì)該數(shù)量進(jìn)行取余運(yùn)算,以確定目標(biāo)服務(wù)器,之后向客戶端發(fā)送該目標(biāo)服務(wù)器的ip地址,以供客戶端與目標(biāo)服務(wù)器建立通信連接。由于獲得的服務(wù)器數(shù)量是對(duì)應(yīng)于當(dāng)前工作狀態(tài)正常的服務(wù)器的,可以保證為客戶端分配的服務(wù)器的有效性。另外,由于不同終端設(shè)備的標(biāo)識(shí)不同、不同應(yīng)用的應(yīng)用標(biāo)識(shí)不同,以這兩類標(biāo)識(shí)作為輸入,使得對(duì)于不同客戶端來說,散列算法的輸入各不相同且長(zhǎng)度較長(zhǎng),從而可以提高不同客戶端對(duì)應(yīng)的guid的差異性,且也可以提高散列算法輸出的散列均勻性,從而基于gudi作為服務(wù)器分配依據(jù)也可以提高服務(wù)器的分配均衡性。

圖2為本發(fā)明實(shí)施例提供的通信方法實(shí)施例二的流程圖,本實(shí)施例提供的該通信方法可以由一通信系統(tǒng)中的客戶端來執(zhí)行,該通信系統(tǒng)中可以包括客戶端、管理平臺(tái)和多個(gè)服務(wù)器。實(shí)際應(yīng)用中,該通信系統(tǒng)中的多個(gè)服務(wù)器可以提供一種網(wǎng)絡(luò)應(yīng)用也可以提供多種網(wǎng)絡(luò)應(yīng)用,但是,對(duì)應(yīng)于某種網(wǎng)絡(luò)應(yīng)用的服務(wù)器的數(shù)量也是多個(gè)。對(duì)應(yīng)的,客戶端可以是對(duì)應(yīng)于一種網(wǎng)絡(luò)應(yīng)用的客戶端,也可以是對(duì)應(yīng)于多種網(wǎng)絡(luò)應(yīng)用的多個(gè)客戶端。如圖2所示,該方法包括如下步驟:

步驟201、采用預(yù)設(shè)散列算法對(duì)客戶端對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)進(jìn)行計(jì)算,以獲得客戶端對(duì)應(yīng)的guid。

本實(shí)施例中生成guid的過程可以參見前述實(shí)施例中的相關(guān)說明,在此不再贅述。

可選地,客戶端可以在每次被觸發(fā)需要與服務(wù)器連接時(shí)即執(zhí)行上述生成guid的過程,但是,也可以在首次生成該guid時(shí),本地保存該guid,在下一次需要使用的時(shí)候,從存儲(chǔ)空間中讀取該guid即可,無需再次生成,除非用于生成guid的輸入?yún)?shù)發(fā)生改變,比如用戶更換了終端設(shè)備導(dǎo)致終端設(shè)備標(biāo)識(shí)改變。

步驟202、向管理平臺(tái)發(fā)送服務(wù)器分配請(qǐng)求,服務(wù)器分配請(qǐng)求中包括guid。

該guid用于使得管理平臺(tái)根據(jù)guid的后n位字符的加和對(duì)當(dāng)前獲得的正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,確定目標(biāo)服務(wù)器。

步驟203、接收管理平臺(tái)發(fā)送的目標(biāo)服務(wù)器的ip地址,以根據(jù)ip地址與目標(biāo)服務(wù)器建立通信連接。

上述兩個(gè)步驟的具體執(zhí)行過程可以參見前述實(shí)施例中的描述,在此不贅述。

在基于前述實(shí)施例的描述,客戶端已經(jīng)與上述目標(biāo)服務(wù)器建立了通信連接的情況下,為避免服務(wù)器的突然異常導(dǎo)致客戶端的應(yīng)用無法正常使用,本發(fā)明實(shí)施例還提供了如圖3所示的機(jī)制,以保障通信連接的可靠性。

圖3為本發(fā)明實(shí)施例提供的通信方法實(shí)施例三的流程圖,如圖3所示,在前述步驟203之后,還可以包括如下步驟:

步驟301、每隔預(yù)設(shè)時(shí)間間隔,對(duì)目標(biāo)服務(wù)器進(jìn)行探活,若目標(biāo)服務(wù)器異常,則向管理平臺(tái)重新發(fā)送服務(wù)器分配請(qǐng)求。

當(dāng)客戶端已經(jīng)與目標(biāo)服務(wù)器建立了通信連接之后,客戶端可以每隔一定的時(shí)間間隔向目標(biāo)服務(wù)器發(fā)送一ping探活消息,如果在一定時(shí)間內(nèi)接收到該目標(biāo)服務(wù)器反饋的pong響應(yīng)消息,則說明該目標(biāo)服務(wù)器工作狀態(tài)正常,反之,如果在一定時(shí)間內(nèi)沒有接收到該目標(biāo)服務(wù)器反饋的pang響應(yīng)消息,則說明該目標(biāo)服務(wù)器工作狀態(tài)異常,如果發(fā)現(xiàn)目標(biāo)服務(wù)器異常,則可以重新觸發(fā)管理平臺(tái)為其分配新的服務(wù)器,具體比如向管理平臺(tái)重新發(fā)送攜帶有g(shù)uid的服務(wù)器分配請(qǐng)求。

值得說明的是,由于管理平臺(tái)也會(huì)定時(shí)對(duì)各服務(wù)器進(jìn)行探活,以確定各服務(wù)器的工作狀態(tài)是否異常,因此,當(dāng)客戶端重新請(qǐng)求管理平臺(tái)分配服務(wù)器時(shí),管理平臺(tái)基于對(duì)各服務(wù)器的工作狀態(tài)的監(jiān)測(cè),會(huì)將客戶端探測(cè)確定的異常服務(wù)器排除在正常服務(wù)器之外,保證重新為客戶端分配的服務(wù)器不會(huì)是已經(jīng)異常的服務(wù)器。

綜上,結(jié)合客戶端對(duì)已經(jīng)連接的服務(wù)器的探活,以及管理平臺(tái)對(duì)各服務(wù)器的探活,可以保證為客戶端分配的服務(wù)器的有效性,從而使得客戶端與對(duì)應(yīng)服務(wù)器的通信連接的可靠性。

步驟302、若與目標(biāo)服務(wù)器間的通信連接的連接時(shí)長(zhǎng)達(dá)到預(yù)設(shè)時(shí)長(zhǎng)閾值,則斷開通信連接,向管理平臺(tái)重新發(fā)送服務(wù)器分配請(qǐng)求。

本實(shí)施例中,客戶端基于如上的探活機(jī)制監(jiān)測(cè)其已連接的服務(wù)器的工作狀態(tài)可能會(huì)存在不能完全監(jiān)測(cè)到服務(wù)器的所有異?,F(xiàn)象的問題。比如實(shí)際應(yīng)用中,可能會(huì)存在客戶端與服務(wù)器的通信連接仍正常,客戶端探活到服務(wù)器仍工作正常,但是實(shí)際上服務(wù)器中的某功能陷入了死循環(huán),客戶端沒有探知這種異常情況。

為此,本實(shí)施例中還提供了強(qiáng)制重連的機(jī)制,即客戶端在與目標(biāo)服務(wù)器建立通信連接之后,如果該通信連接的連接時(shí)長(zhǎng)達(dá)到預(yù)設(shè)時(shí)長(zhǎng)閾值,則強(qiáng)制斷開該通信連接,重新請(qǐng)求管理平臺(tái)為其分配服務(wù)器,以保證客戶端連接的服務(wù)器的有效性。

以下將詳細(xì)描述本發(fā)明的一個(gè)或多個(gè)實(shí)施例的通信系統(tǒng)。

圖4為本發(fā)明實(shí)施例提供的通信系統(tǒng)的結(jié)構(gòu)示意圖,如圖4所示,該系統(tǒng)包括:客戶端1、管理平臺(tái)2和多個(gè)服務(wù)器3。

所述客戶端1,用于采用預(yù)設(shè)散列算法對(duì)客戶端1對(duì)應(yīng)的終端設(shè)備標(biāo)識(shí)和應(yīng)用標(biāo)識(shí)進(jìn)行計(jì)算,以獲得所述客戶端對(duì)應(yīng)的全局唯一標(biāo)識(shí)符;向所述管理平臺(tái)2發(fā)送包括所述全局唯一標(biāo)識(shí)符的服務(wù)器分配請(qǐng)求;根據(jù)所述管理平臺(tái)2反饋的目標(biāo)服務(wù)器的ip地址與所述目標(biāo)服務(wù)器建立通信連接。

所述管理平臺(tái)2,用于響應(yīng)于所述服務(wù)器分配請(qǐng)求,獲取正常服務(wù)器數(shù)量,所述正常服務(wù)器是指工作狀態(tài)正常的服務(wù)器;以所述全局唯一標(biāo)識(shí)符的后n位字符的加和對(duì)所述正常服務(wù)器數(shù)量進(jìn)行取余運(yùn)算,根據(jù)運(yùn)算結(jié)果確定目標(biāo)服務(wù)器;將所述目標(biāo)服務(wù)器的ip地址發(fā)送至所述客戶端1。

可選地,所述管理平臺(tái)2具體用于:

分別對(duì)各服務(wù)器進(jìn)行探活,確定仍存活的服務(wù)器的數(shù)量作為所述正常服務(wù)器數(shù)量;和/或,

分別獲取所述各服務(wù)器的負(fù)載壓力,確定負(fù)載壓力低于預(yù)設(shè)閾值的服務(wù)器的數(shù)量作為所述正常服務(wù)器數(shù)量。

可選地,所述客戶端1還用于:

每隔預(yù)設(shè)時(shí)間間隔對(duì)所述目標(biāo)服務(wù)器進(jìn)行探活,若所述目標(biāo)服務(wù)器異常,則向所述管理平臺(tái)重新發(fā)送所述服務(wù)器分配請(qǐng)求。

可選地,所述客戶端1還用于:

若所述通信連接的連接時(shí)長(zhǎng)達(dá)到預(yù)設(shè)時(shí)長(zhǎng)閾值,則斷開所述通信連接,以向所述管理平臺(tái)重新發(fā)送所述服務(wù)器分配請(qǐng)求。

圖4所示系統(tǒng)可以執(zhí)行圖1-圖3所示實(shí)施例的方法,本實(shí)施例未詳細(xì)描述的部分,可參考對(duì)圖1-圖3所示實(shí)施例的相關(guān)說明。該技術(shù)方案的執(zhí)行過程和技術(shù)效果參見圖1-圖3所示實(shí)施例中的描述,在此不再贅述。

以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。

通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)裝置(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。

最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1