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