两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

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

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

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



背景技術:

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

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



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

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

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

接收客戶端發(fā)送的服務器分配請求,所述服務器分配請求中包括所述客戶端對應的全局唯一標識符,所述全局唯一標識符由所述客戶端采用預設散列算法對所述客戶端對應的終端設備標識和應用標識計算獲得;

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

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

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

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

采用預設散列算法對客戶端對應的終端設備標識和應用標識進行計算,以獲得所述客戶端對應的全局唯一標識符;

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

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

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

客戶端、管理平臺和多個服務器;

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

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

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

附圖說明

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

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

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

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

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

具體實施方式

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

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

應當理解,本文中使用的術語“和/或”僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。另外,本文中字符“/”,一般表示前后關聯(lián)對象是一種“或”的關系。

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

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

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

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

步驟101、接收客戶端發(fā)送的服務器分配請求,服務器分配請求中包括客戶端對應的guid。

具體地,該guid由客戶端采用預設散列算法對客戶端對應的終端設備標識和應用標識計算獲得。

其中,該預設散列算法比如可以是md5算法、sha1算法等。

其中,應用標識可以是該客戶端所對應的網(wǎng)絡應用的應用名稱等用于表示該應用的標識。終端設備標識是指該客戶端所安裝于的終端設備的標識,比如可以包括終端設備的設備序列號、國際移動設備識別碼(internationalmobileequipmentidentity,簡稱imei)等。

值得說明的是,本實施例中僅舉例說明預設散列算法的輸入包括客戶端對應的終端設備標識和應用標識,但是實際應用中,輸入并不限于這兩類標識,還可以包括其他標識,比如還可以包括用戶標識,該用戶標識比如可以為用戶的電話號碼、應用賬號等。

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

本實施例中,為了提高散列算法輸出結果的散列程度,從兩個層面對散列算法的輸入?yún)?shù)進行設置:提高輸入?yún)?shù)的長度,提高輸入?yún)?shù)的差異性。

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

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

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

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

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

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

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

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

對應于guid的十六進制的表示形式,n取值比如為6,即后6位,此時對應于二進制表示形式的后3個字節(jié)。

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

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

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

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

管理平臺中預先存儲有各服務器的ip地址,具體地,比如存儲有各服務器的ip地址與服務器標識間的對應關系表。從而,在確定出目標服務器標識后,查詢該對應關系,得到對應的ip地址。

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

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

步驟201、采用預設散列算法對客戶端對應的終端設備標識和應用標識進行計算,以獲得客戶端對應的guid。

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

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

步驟202、向管理平臺發(fā)送服務器分配請求,服務器分配請求中包括guid。

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

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

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

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

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

步驟301、每隔預設時間間隔,對目標服務器進行探活,若目標服務器異常,則向管理平臺重新發(fā)送服務器分配請求。

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

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

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

步驟302、若與目標服務器間的通信連接的連接時長達到預設時長閾值,則斷開通信連接,向管理平臺重新發(fā)送服務器分配請求。

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

為此,本實施例中還提供了強制重連的機制,即客戶端在與目標服務器建立通信連接之后,如果該通信連接的連接時長達到預設時長閾值,則強制斷開該通信連接,重新請求管理平臺為其分配服務器,以保證客戶端連接的服務器的有效性。

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

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

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

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

可選地,所述管理平臺2具體用于:

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

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

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

每隔預設時間間隔對所述目標服務器進行探活,若所述目標服務器異常,則向所述管理平臺重新發(fā)送所述服務器分配請求。

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

若所述通信連接的連接時長達到預設時長閾值,則斷開所述通信連接,以向所述管理平臺重新發(fā)送所述服務器分配請求。

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

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

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

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

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
靖安县| 都匀市| 南岸区| 梓潼县| 宁化县| 通河县| 五华县| 阆中市| 尉犁县| 焉耆| 重庆市| 西安市| 阿勒泰市| 黑水县| 汉源县| 遂昌县| 达尔| 宝丰县| 屏东市| 巴塘县| 常州市| 三原县| 武川县| 鄯善县| 六安市| 浦县| 延川县| 浦城县| 得荣县| 柳河县| 峡江县| 黄冈市| 白水县| 东宁县| 全椒县| 区。| 罗田县| 崇阳县| 息烽县| 平阴县| 黔西县|