基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法和系統(tǒng),涉及即時(shí)通信領(lǐng)域。該方法包括:針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器;根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。本發(fā)明通過對(duì)用戶間的即時(shí)通信關(guān)系進(jìn)行社交化網(wǎng)絡(luò)分區(qū),使關(guān)系緊密的用戶聚集到同一個(gè)分區(qū),從而獲得最優(yōu)的服務(wù)器負(fù)載分布視圖,并按照此圖把用戶遷移到新歸屬服務(wù)器上,以減少服務(wù)器跨區(qū)通信的資源消耗,使系統(tǒng)在全局層面達(dá)到真正負(fù)載均衡,解決了即時(shí)通信系統(tǒng)中由于用戶分區(qū)不合理而引起的服務(wù)器間通信不均衡問題。
【專利說明】基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及即時(shí)通信領(lǐng)域,特別涉及一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法和系統(tǒng)。
【背景技術(shù)】
[0002]互聯(lián)網(wǎng)級(jí)的大型即時(shí)通信系統(tǒng)均通過部署多個(gè)集群來支持大規(guī)模用戶,相應(yīng)的負(fù)載均衡策略采用多級(jí)方式,一般分為全局和本地兩種負(fù)載分配策略。服務(wù)器負(fù)載均衡算法包括散列算法、優(yōu)先權(quán)算法、最少連接算法、響應(yīng)速度算法、動(dòng)態(tài)性能分配算法等。這些算法均將來自用戶的請(qǐng)求盡量均勻的分布到各服務(wù)器上,使系統(tǒng)中各服務(wù)器收到的用戶請(qǐng)求處理量與其計(jì)算能力的比值趨向一致。
[0003]即時(shí)通信業(yè)務(wù)屬于在線社交網(wǎng)絡(luò)(Online Social Networks, OSNs)的范疇,這種應(yīng)用的特點(diǎn)是前端用戶的請(qǐng)求引起后端服務(wù)器間成密集網(wǎng)狀的相互調(diào)用,而不是過去清晰的逐層順序調(diào)用。因此,部署即時(shí)通信業(yè)務(wù)的服務(wù)器不僅需要處理直接接收到的用戶請(qǐng)求,還需要處理服務(wù)器間內(nèi)部互相調(diào)用的請(qǐng)求。由此引起服務(wù)器間內(nèi)部互相調(diào)用的不均衡性,造成有些服務(wù)器節(jié)點(diǎn)上盡管分布的用戶數(shù)也不多,但是消息流量卻極大,嚴(yán)重影響了全網(wǎng)流量的平衡。
[0004]現(xiàn)有的負(fù)載均衡方式對(duì)即時(shí)通信業(yè)務(wù)的運(yùn)行特點(diǎn)考慮不足,需要一種適合即時(shí)通信業(yè)務(wù)的負(fù)載均衡方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例所要解決的一個(gè)技術(shù)問題是:提出一種適合即時(shí)通信業(yè)務(wù)的負(fù)載均衡方案。
[0006]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提出一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法,包括:針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器;根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
[0007]根據(jù)本發(fā)明實(shí)施例的另一方面,提出一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng),包括:分區(qū)服務(wù)器和負(fù)載調(diào)整服務(wù)器;分區(qū)服務(wù)器用于針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器;負(fù)載調(diào)整服務(wù)器用于根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
[0008]本發(fā)明通過對(duì)用戶間的即時(shí)通信關(guān)系進(jìn)行社交化網(wǎng)絡(luò)分區(qū),使關(guān)系緊密的用戶聚集到同一個(gè)分區(qū),從而獲得最優(yōu)的服務(wù)器負(fù)載分布視圖,并按照此圖把用戶遷移到新歸屬服務(wù)器上,以減少服務(wù)器跨區(qū)通信的資源消耗,使系統(tǒng)在全局層面達(dá)到真正負(fù)載均衡,解決了即時(shí)通信系統(tǒng)中由于用戶分區(qū)不合理而引起的服務(wù)器間通信不均衡問題。
[0009]通過以下參照附圖對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的其它特征及其優(yōu)點(diǎn)將會(huì)變得清楚。
【專利附圖】
【附圖說明】
[0010]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0011]圖1為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法一個(gè)實(shí)施例的流程示意圖。
[0012]圖2為本發(fā)明與現(xiàn)有技術(shù)之間的負(fù)載均衡對(duì)比示意圖。
[0013]圖3為本發(fā)明通過調(diào)換分區(qū)標(biāo)識(shí)進(jìn)行用戶遷移的示意圖。
[0014]圖4為本發(fā)明在服務(wù)不中斷情況下對(duì)用戶進(jìn)行動(dòng)態(tài)遷移的方法流程示意圖。
[0015]圖5為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
[0016]圖6為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng)另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。以下對(duì)至少一個(gè)示例性實(shí)施例的描述實(shí)際上僅僅是說明性的,決不作為對(duì)本發(fā)明及其應(yīng)用或使用的任何限制。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0018]互聯(lián)網(wǎng)級(jí)的大型即時(shí)通信系統(tǒng),用戶基數(shù)大、服務(wù)器數(shù)量多、分布地域廣,如果不能合理的對(duì)用戶分區(qū)使通信密集的用戶集中到同一個(gè)區(qū)域,則跨區(qū)的通信量會(huì)非常大,造成系統(tǒng)整體負(fù)載失衡。本發(fā)明提出了一種適合即時(shí)通信業(yè)務(wù)的負(fù)載均衡方案,下面詳細(xì)說明。
[0019]圖1為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法一個(gè)實(shí)施例的流程示意圖。
[0020]如圖1所示,本實(shí)施例的負(fù)載均衡方法包括以下步驟:
[0021]步驟101,針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;
[0022]步驟102,對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);
[0023]步驟103,調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;
[0024]步驟104,調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器;
[0025]步驟105,根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
[0026]上述實(shí)施例,通過對(duì)用戶間的即時(shí)通信關(guān)系進(jìn)行社交化網(wǎng)絡(luò)分區(qū),使關(guān)系緊密的用戶聚集到同一個(gè)分區(qū),從而獲得最優(yōu)的服務(wù)器負(fù)載分布視圖,并按照此圖把用戶遷移到新歸屬服務(wù)器上,以減少服務(wù)器跨區(qū)通信的資源消耗,使系統(tǒng)在全局層面達(dá)到真正負(fù)載均衡,解決了即時(shí)通信系統(tǒng)中由于用戶分區(qū)不合理而引起的服務(wù)器間通信不均衡問題。
[0027]圖2為本發(fā)明與現(xiàn)有技術(shù)之間的負(fù)載均衡對(duì)比示意圖。采用現(xiàn)有技術(shù)均衡之后,服務(wù)器A、B、C上分別有5個(gè)用戶,但由于服務(wù)器A上的用戶A和B,與服務(wù)器B上的用戶
C、D和E,以及服務(wù)器C上的用戶F關(guān)系緊密,用戶間的通信比較頻繁,造成服務(wù)器跨區(qū)通信的資源消耗比較多。采用本發(fā)明均衡之后,按照分區(qū)重新調(diào)整用戶在服務(wù)器上的分布,關(guān)系密切的用戶A、B、C、D和E集中到同一服務(wù)器A上,從而減少了服務(wù)器跨區(qū)通信的資源消耗,使系統(tǒng)在全局層面達(dá)到真正負(fù)載均衡。
[0028]對(duì)于步驟101,本發(fā)明提出一種示例性的建社交網(wǎng)絡(luò)圖的方法,包括:從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度,根據(jù)用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度構(gòu)建各種社交網(wǎng)絡(luò)圖。其中的關(guān)系類型例如可以是好友關(guān)系、同學(xué)關(guān)系、同事關(guān)系等。另外,在判定用戶間存在即時(shí)通信業(yè)務(wù)關(guān)系時(shí),可以設(shè)置一個(gè)存在關(guān)系的最小閾值,例如可以設(shè)定存在關(guān)系的最小閾值為每個(gè)月30條消息,如果小于30條消息,則可以認(rèn)為兩個(gè)用戶間不存在即時(shí)通信業(yè)務(wù)關(guān)系,反之,則可以認(rèn)為兩個(gè)用戶間存在即時(shí)通信業(yè)務(wù)關(guān)系。
[0029]對(duì)于步驟102,如何在大型即時(shí)通信系統(tǒng)這張極其龐大的、而且易變的百萬個(gè)節(jié)點(diǎn)以上的在線社交網(wǎng)絡(luò)圖譜中進(jìn)行多維度快速聚類和動(dòng)態(tài)調(diào)整用戶分區(qū),從工程角度是一件非常復(fù)雜而又棘手的綜合性問題。對(duì)于這個(gè)問題,本發(fā)明借鑒社會(huì)網(wǎng)絡(luò)分析(SNA)領(lǐng)域的節(jié)點(diǎn)聚類和子圖發(fā)現(xiàn)算法,提出一種示例性的社交網(wǎng)絡(luò)圖分區(qū)方法,包括:根據(jù)k-core算法對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),k-core算法是指分區(qū)中的任何一個(gè)用戶都至少與分區(qū)中的其他k個(gè)用戶建立關(guān)系,其中的k表示預(yù)設(shè)度數(shù)。需要說明的是,可以根據(jù)需要設(shè)置關(guān)系的權(quán)重,例如,一個(gè)月內(nèi)聯(lián)系過10次的好友才建立一個(gè)關(guān)系,而有些用戶盡管也是好友但由于一個(gè)月內(nèi)聯(lián)系少于10次,則用戶與這些好友之間并沒有建立關(guān)系。
[0030]對(duì)于步驟103,本發(fā)明提出一種示例性的調(diào)整分區(qū)的方法,包括:通過改變上述預(yù)設(shè)度數(shù)k的值來調(diào)整分區(qū)大小,使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配。
[0031]對(duì)于步驟104,由于用戶進(jìn)行哈希負(fù)載均衡時(shí)使用的key (關(guān)鍵字)并不是用戶標(biāo)識(shí)(或稱用戶ID)而是用戶的分區(qū)標(biāo)識(shí)(或稱分區(qū)ID),該分區(qū)標(biāo)識(shí)與用戶標(biāo)識(shí)的綁定關(guān)系是可變的,因此本發(fā)明可以通過修改用戶標(biāo)識(shí)與分區(qū)標(biāo)識(shí)的映射關(guān)系,使用戶在進(jìn)行負(fù)載均衡的散列計(jì)算時(shí)落到待遷移的業(yè)務(wù)服務(wù)器上。
[0032]由于哈希不可逆,我們無法知道服務(wù)器對(duì)應(yīng)的所有分區(qū)ID,但是通過已經(jīng)落到該服務(wù)器的用戶群可以知道一部分分區(qū)ID,于是本發(fā)明提出下述的第一種方法,通過不斷互換服務(wù)器間已知的分區(qū)ID組,使用戶最終分配到目標(biāo)服務(wù)器的分區(qū)ID。
[0033]第一種方法,將用戶的原分區(qū)標(biāo)識(shí)替換為新分區(qū)標(biāo)識(shí),該新分區(qū)標(biāo)識(shí)可以使待遷入分區(qū)所在業(yè)務(wù)服務(wù)器中的一個(gè)已知的待遷出的分區(qū)標(biāo)識(shí),以使用戶使用分區(qū)標(biāo)識(shí)進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器。
[0034]例如,如圖3所示,用戶b要想從服務(wù)器A遷移到服務(wù)器B,需要從B服務(wù)器的待遷出的分區(qū)ID中選取一個(gè)替換用戶b所在原服務(wù)器A的分區(qū)ID,于是用戶b的分區(qū)ID改為4,則可以將用戶b遷入服務(wù)器B。又例如,用戶d要想從服務(wù)器B遷移到服務(wù)器C,需要從C服務(wù)器的待遷出的分區(qū)ID中選取一個(gè)替換用戶d所在原服務(wù)器B的分區(qū)ID,于是用戶d的分區(qū)ID改為7,則可以將用戶d遷入服務(wù)器C。其他用戶調(diào)換后的分區(qū)標(biāo)識(shí)如圖3所示,這里不再一一贅述。
[0035]互換的方法不能確保所有用戶都得到理想分區(qū)ID,這個(gè)局限可以通過系統(tǒng)自行儲(chǔ)備空閑分區(qū)ID得到解決,即下述的第二種方法。
[0036]第二種方法,將用戶的原分區(qū)標(biāo)識(shí)替換為新分區(qū)標(biāo)識(shí),該新分區(qū)標(biāo)識(shí)可以使待遷入分區(qū)所在業(yè)務(wù)服務(wù)器中的一個(gè)空閑分區(qū)標(biāo)識(shí),以使用戶使用分區(qū)標(biāo)識(shí)進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器。
[0037]上述兩種方法,在用戶遷移到新分區(qū)所在業(yè)務(wù)服務(wù)器后,仍然可以采用一致性哈希算法進(jìn)行用戶位置尋址,不需要使用代價(jià)高昂的路由表技術(shù),非常適合工程上實(shí)施。
[0038]對(duì)于步驟105,本發(fā)明提出一種在服務(wù)不中斷情況下對(duì)用戶進(jìn)行動(dòng)態(tài)遷移的方法,如圖4所示,包括以下步驟:
[0039]步驟401,負(fù)載調(diào)整服務(wù)器獲取用戶的用戶標(biāo)識(shí)、原分區(qū)標(biāo)識(shí)、新分區(qū)標(biāo)識(shí),根據(jù)原分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在原業(yè)務(wù)服務(wù)器的地址,根據(jù)新分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在新業(yè)務(wù)服務(wù)器的地址;
[0040]步驟402,負(fù)載調(diào)整服務(wù)器根據(jù)用戶所在原業(yè)務(wù)服務(wù)器的地址,通知用戶所在原業(yè)務(wù)服務(wù)器遷出該用戶;
[0041]步驟403,負(fù)載調(diào)整服務(wù)器可以從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶的好友(好友可以是列表形式),通知用戶好友所在業(yè)務(wù)服務(wù)器更新該用戶的分區(qū)標(biāo)識(shí)為新分區(qū)標(biāo)識(shí);
[0042]步驟404,用戶所在原業(yè)務(wù)服務(wù)器可以通過于用戶客戶端的長(zhǎng)連接,通知用戶重定向到用戶所在新業(yè)務(wù)服務(wù)器,并指定負(fù)載調(diào)整服務(wù)器為其收發(fā)消息的代理服務(wù)器,以便處理其好友同時(shí)也在遷移的情況;轉(zhuǎn)發(fā)好友發(fā)給用戶的消息給負(fù)載調(diào)整服務(wù)器;
[0043]步驟405,用戶好友所在業(yè)務(wù)服務(wù)器記錄用戶的新分區(qū)標(biāo)識(shí),使用舊分區(qū)標(biāo)識(shí)給用戶發(fā)送消息,直到收到負(fù)載調(diào)整服務(wù)器的切換新分區(qū)標(biāo)識(shí)的通知后再使用新分區(qū)標(biāo)識(shí)給用戶發(fā)送消息;
[0044]步驟406,負(fù)載調(diào)整服務(wù)器將發(fā)給用戶所在原業(yè)務(wù)服務(wù)器的消息轉(zhuǎn)發(fā)給用戶所在新業(yè)務(wù)服務(wù)器,將用戶所在新業(yè)務(wù)服務(wù)器發(fā)給該用戶好友的消息轉(zhuǎn)發(fā)給用戶好友所在業(yè)務(wù)服務(wù)器;
[0045]步驟407,當(dāng)用戶好友所在業(yè)務(wù)服務(wù)器均完成新分區(qū)標(biāo)識(shí)的更新后,負(fù)載調(diào)整服務(wù)器對(duì)用戶好友所在業(yè)務(wù)服務(wù)器統(tǒng)一發(fā)送切換新分區(qū)標(biāo)識(shí)的通知,用戶好友所在業(yè)務(wù)服務(wù)器接到通知后使用新分區(qū)標(biāo)識(shí)給用戶發(fā)送消息,并通知用戶所在新業(yè)務(wù)服務(wù)器發(fā)出消息不再經(jīng)負(fù)載調(diào)整服務(wù)器中轉(zhuǎn)。
[0046]上述遷移方法,可以在服務(wù)不中斷情況下進(jìn)行,并且在用戶及其好友均在遷移的情況下不會(huì)漏接消息。
[0047]圖5為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng)一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
[0048]如圖5所示,本實(shí)施例的負(fù)載均衡系統(tǒng)包括:分區(qū)服務(wù)器501和負(fù)載調(diào)整服務(wù)器502 ;分區(qū)服務(wù)器501用于針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器;負(fù)載調(diào)整服務(wù)器502用于根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
[0049]其中,分區(qū)服務(wù)器501可以包括社交網(wǎng)絡(luò)圖構(gòu)建模塊,用于針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖,具體包括:從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度,根據(jù)用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度構(gòu)建社交網(wǎng)絡(luò)圖。
[0050]其中,分區(qū)服務(wù)器501可以包括分區(qū)模塊,用于對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),具體包括:根據(jù)k-core算法對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),k-core算法是指分區(qū)中的任何一個(gè)用戶都至少與分區(qū)中的其他k個(gè)用戶建立關(guān)系,其中的k表示預(yù)設(shè)度數(shù)。
[0051]其中,分區(qū)服務(wù)器501可以包括分區(qū)調(diào)整模塊,用于調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配,具體包括:通過改變預(yù)設(shè)度數(shù)k的值來調(diào)整分區(qū)大小,使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配。
[0052]其中,分區(qū)服務(wù)器501可以包括分區(qū)標(biāo)識(shí)調(diào)整模塊,用于調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器,具體包括:將用戶的原分區(qū)標(biāo)識(shí)替換為新分區(qū)標(biāo)識(shí),該新分區(qū)標(biāo)識(shí)為待遷入分區(qū)所在業(yè)務(wù)服務(wù)器中的一個(gè)空閑分區(qū)標(biāo)識(shí)或一個(gè)已知的待遷出的分區(qū)標(biāo)識(shí),以使用戶使用分區(qū)標(biāo)識(shí)進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器。
[0053]圖6為本發(fā)明基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng)另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。如圖6所示,該系統(tǒng)還包括業(yè)務(wù)服務(wù)器503。則在動(dòng)態(tài)遷移過程中:
[0054]負(fù)載調(diào)整服務(wù)器502,用于從分區(qū)服務(wù)器501獲取用戶的用戶標(biāo)識(shí)、原分區(qū)標(biāo)識(shí)、新分區(qū)標(biāo)識(shí),根據(jù)原分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在原業(yè)務(wù)服務(wù)器的地址,根據(jù)新分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在新業(yè)務(wù)服務(wù)器的地址,根據(jù)用戶所在原業(yè)務(wù)服務(wù)器的地址,通知用戶所在原業(yè)務(wù)服務(wù)器遷出該用戶,從數(shù)據(jù)庫(kù)服務(wù)器獲取用戶的好友,通知用戶好友所在業(yè)務(wù)服務(wù)器更新該用戶的分區(qū)標(biāo)識(shí)為新分區(qū)標(biāo)識(shí);
[0055]用戶所在原業(yè)務(wù)服務(wù)器,用于通知用戶重定向到用戶所在新業(yè)務(wù)服務(wù)器,并指定負(fù)載調(diào)整服務(wù)器為其收發(fā)消息的代理服務(wù)器;
[0056]用戶好友所在業(yè)務(wù)服務(wù)器,用于記錄用戶的新分區(qū)標(biāo)識(shí),使用舊分區(qū)標(biāo)識(shí)給用戶發(fā)送消息,直到收到負(fù)載調(diào)整服務(wù)器的切換新分區(qū)標(biāo)識(shí)的通知后再使用新分區(qū)標(biāo)識(shí)給用戶發(fā)送消息;
[0057]用戶所在原業(yè)務(wù)服務(wù)器與用戶好友所在業(yè)務(wù)服務(wù)器在圖6中均標(biāo)識(shí)為503,不再區(qū)分。
[0058]負(fù)載調(diào)整服務(wù)器502,用于將發(fā)給用戶所在原業(yè)務(wù)服務(wù)器的消息轉(zhuǎn)發(fā)給用戶所在新業(yè)務(wù)服務(wù)器,將用戶所在新業(yè)務(wù)服務(wù)器發(fā)給該用戶好友的消息轉(zhuǎn)發(fā)給用戶好友所在業(yè)務(wù)服務(wù)器,當(dāng)用戶好友所在業(yè)務(wù)服務(wù)器均完成新分區(qū)標(biāo)識(shí)的更新后,對(duì)用戶好友所在業(yè)務(wù)服務(wù)器統(tǒng)一發(fā)送切換新分區(qū)標(biāo)識(shí)的通知。
[0059]在具體實(shí)現(xiàn)時(shí),分區(qū)服務(wù)器由于計(jì)算規(guī)模非常大、算法經(jīng)常變化,可以采用oracle實(shí)現(xiàn);負(fù)載調(diào)整服務(wù)器可以基于服務(wù)器框架netty改造實(shí)現(xiàn);業(yè)務(wù)服務(wù)器(如openfire)需要增加restful接口供負(fù)載調(diào)整服務(wù)器發(fā)送通知指令。
[0060]上述負(fù)載均衡系統(tǒng),通過對(duì)用戶間的即時(shí)通信關(guān)系進(jìn)行社交化網(wǎng)絡(luò)分區(qū),使關(guān)系緊密的用戶聚集到同一個(gè)分區(qū),從而獲得最優(yōu)的服務(wù)器負(fù)載分布視圖,并按照此圖把用戶遷移到新歸屬服務(wù)器上,以減少服務(wù)器跨區(qū)通信的資源消耗,使系統(tǒng)在全局層面達(dá)到真正負(fù)載均衡,解決了即時(shí)通信系統(tǒng)中由于用戶分區(qū)不合理而引起的服務(wù)器間通信不均衡問題。并且,在用戶遷移到新分區(qū)所在業(yè)務(wù)服務(wù)器后,仍然可以采用一致性哈希算法進(jìn)行用戶位置尋址,不需要使用代價(jià)高昂的路由表技術(shù),非常適合工程上實(shí)施。另外,用戶遷移可以在服務(wù)不中斷情況下進(jìn)行,并且在用戶及其好友均在遷移的情況下不會(huì)漏接消息。
[0061]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0062]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡方法,包括: 針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖; 對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū); 調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配; 調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器; 根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖包括: 根據(jù)用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度構(gòu)建社交網(wǎng)絡(luò)圖。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū)包括: 根據(jù)k-core算法對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),k-core算法是指分區(qū)中的任何一個(gè)用戶都至少與分區(qū)中的其他k個(gè)用戶建立關(guān)系,其中的k表示預(yù)設(shè)度數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配包括: 通過改變預(yù)設(shè)度數(shù)k的值來調(diào)整分區(qū)大小,使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器包括: 將用戶的原分區(qū)標(biāo)識(shí)替換為新分區(qū)標(biāo)識(shí),該新分區(qū)標(biāo)識(shí)為待遷入分區(qū)所在業(yè)務(wù)服務(wù)器中的一個(gè)空閑分區(qū)標(biāo)識(shí)或一個(gè)已知的待遷出的分區(qū)標(biāo)識(shí),以使用戶使用分區(qū)標(biāo)識(shí)進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移包括: 負(fù)載調(diào)整服務(wù)器獲取用戶的用戶標(biāo)識(shí)、原分區(qū)標(biāo)識(shí)、新分區(qū)標(biāo)識(shí),根據(jù)原分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在原業(yè)務(wù)服務(wù)器的地址,根據(jù)新分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在新業(yè)務(wù)服務(wù)器的地址,根據(jù)用戶所在原業(yè)務(wù)服務(wù)器的地址,通知用戶所在原業(yè)務(wù)服務(wù)器遷出該用戶,獲取用戶的好友,通知用戶好友所在業(yè)務(wù)服務(wù)器更新該用戶的分區(qū)標(biāo)識(shí)為新分區(qū)標(biāo)識(shí); 用戶所在原業(yè)務(wù)服務(wù)器通知用戶重定向到用戶所在新業(yè)務(wù)服務(wù)器,并指定負(fù)載調(diào)整服務(wù)器為其收發(fā)消息的代理服務(wù)器; 用戶好友所在業(yè)務(wù)服務(wù)器記錄用戶的新分區(qū)標(biāo)識(shí),使用舊分區(qū)標(biāo)識(shí)給用戶發(fā)送消息,直到收到負(fù)載調(diào)整服務(wù)器的切換新分區(qū)標(biāo)識(shí)的通知后再使用新分區(qū)標(biāo)識(shí)給用戶發(fā)送消息; 負(fù)載調(diào)整服務(wù)器將發(fā)給用戶所在原業(yè)務(wù)服務(wù)器的消息轉(zhuǎn)發(fā)給用戶所在新業(yè)務(wù)服務(wù)器,將用戶所在新業(yè)務(wù)服務(wù)器發(fā)給該用戶好友的消息轉(zhuǎn)發(fā)給用戶好友所在業(yè)務(wù)服務(wù)器,當(dāng)用戶好友所在業(yè)務(wù)服務(wù)器均完成新分區(qū)標(biāo)識(shí)的更新后,對(duì)用戶好友所在業(yè)務(wù)服務(wù)器統(tǒng)一發(fā)送切換新分區(qū)標(biāo)識(shí)的通知。
7.一種基于即時(shí)通信業(yè)務(wù)的負(fù)載均衡系統(tǒng),包括:分區(qū)服務(wù)器和負(fù)載調(diào)整服務(wù)器; 分區(qū)服務(wù)器用于針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖;對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū);調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配;調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器; 負(fù)載調(diào)整服務(wù)器用于根據(jù)用戶的分區(qū)標(biāo)識(shí)對(duì)用戶進(jìn)行動(dòng)態(tài)遷移。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述分區(qū)服務(wù)器包括社交網(wǎng)絡(luò)圖構(gòu)建模塊,用于針對(duì)即時(shí)通信業(yè)務(wù)構(gòu)建社交網(wǎng)絡(luò)圖,具體包括:根據(jù)用戶間的即時(shí)通信業(yè)務(wù)關(guān)系、關(guān)系類型、與時(shí)間相關(guān)的通信頻度構(gòu)建社交網(wǎng)絡(luò)圖。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述分區(qū)服務(wù)器包括分區(qū)模塊,用于對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),具體包括:根據(jù)k-core算法對(duì)社交網(wǎng)絡(luò)圖進(jìn)行分區(qū),k-core算法是指分區(qū)中的任何一個(gè)用戶都至少與分區(qū)中的其他k個(gè)用戶建立關(guān)系,其中的k表示預(yù)設(shè)度數(shù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述分區(qū)服務(wù)器包括分區(qū)調(diào)整模塊,用于調(diào)整分區(qū)使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配,具體包括:通過改變預(yù)設(shè)度數(shù)k的值來調(diào)整分區(qū)大小,使分區(qū)與業(yè)務(wù)服務(wù)器的分布和規(guī)模相適配。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述分區(qū)服務(wù)器包括分區(qū)標(biāo)識(shí)調(diào)整模塊,用于調(diào)換用戶的分區(qū)標(biāo)識(shí)使用戶進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器,具體包括:將用戶的原分區(qū)標(biāo)識(shí)替換為新分區(qū)標(biāo)識(shí),該新分區(qū)標(biāo)識(shí)為待遷入分區(qū)所在業(yè)務(wù)服務(wù)器中的一個(gè)空閑分區(qū)標(biāo)識(shí)或一個(gè)已知的待遷出的分區(qū)標(biāo)識(shí),以使用戶使用分區(qū)標(biāo)識(shí)進(jìn)行負(fù)載均衡散列運(yùn)算后落到待遷入分區(qū)所在業(yè)務(wù)服務(wù)器。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括業(yè)務(wù)服務(wù)器; 所述負(fù)載調(diào)整服務(wù)器,用于從分區(qū)服務(wù)器獲取用戶的用戶標(biāo)識(shí)、原分區(qū)標(biāo)識(shí)、新分區(qū)標(biāo)識(shí),根據(jù)原分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在原業(yè)務(wù)服務(wù)器的地址,根據(jù)新分區(qū)標(biāo)識(shí)進(jìn)行哈希運(yùn)算得到用戶所在新業(yè)務(wù)服務(wù)器的地址,根據(jù)用戶所在原業(yè)務(wù)服務(wù)器的地址,通知用戶所在原業(yè)務(wù)服務(wù)器遷出該用戶,獲取用戶的好友,通知用戶好友所在業(yè)務(wù)服務(wù)器更新該用戶的分區(qū)標(biāo)識(shí)為新分區(qū)標(biāo)識(shí); 用戶所在原業(yè)務(wù)服務(wù)器,用于通知用戶重定向到用戶所在新業(yè)務(wù)服務(wù)器,并指定負(fù)載調(diào)整服務(wù)器為其收發(fā)消息的代理服務(wù)器; 用戶好友所在業(yè)務(wù)服務(wù)器,用于記錄用戶的新分區(qū)標(biāo)識(shí),使用舊分區(qū)標(biāo)識(shí)給用戶發(fā)送消息,直到收到負(fù)載調(diào)整服務(wù)器的切換新分區(qū)標(biāo)識(shí)的通知后再使用新分區(qū)標(biāo)識(shí)給用戶發(fā)送消息; 所述負(fù)載調(diào)整服務(wù)器,用于將發(fā)給用戶所在原業(yè)務(wù)服務(wù)器的消息轉(zhuǎn)發(fā)給用戶所在新業(yè)務(wù)服務(wù)器,將用戶所在新業(yè)務(wù)服務(wù)器發(fā)給該用戶好友的消息轉(zhuǎn)發(fā)給用戶好友所在業(yè)務(wù)服務(wù)器,當(dāng)用戶好友所在業(yè)務(wù)服務(wù)器均完成新分區(qū)標(biāo)識(shí)的更新后,對(duì)用戶好友所在業(yè)務(wù)服務(wù)器統(tǒng)一發(fā)送切換新分區(qū)標(biāo)識(shí)的通知。
【文檔編號(hào)】H04L12/58GK104184673SQ201310196308
【公開日】2014年12月3日 申請(qǐng)日期:2013年5月24日 優(yōu)先權(quán)日:2013年5月24日
【發(fā)明者】趙繼壯 申請(qǐng)人:中國(guó)電信股份有限公司