本發(fā)明實施例屬于通信領域,尤其涉及一種流量的分流方法及分流器。
背景技術:
:隨著視頻直播和視頻通話的進一步流行,互動式連接服務器(InteractiveConnectivityEstablishmentServer)和轉發(fā)服務器(TraversalUsingRelayNATServer)的分流變得越來越重要,正確的分流會使公司部署的服務器更加合理,從而為公司節(jié)省下更多的運營費用?,F(xiàn)在主流的流量分流器主要根據(jù)當前的接入連線數(shù)以及當前的流量選擇如何分流,這種方法雖然簡單易行,但是也有相當?shù)木窒扌?。以視頻通話(基于VoiceoverIP技術)的傳輸特性為例,由于當前的流量不足以作為負載均衡的參照標準,因此,若僅根據(jù)當前的接入連線數(shù)以及當前的流量難以實現(xiàn)準確分流。技術實現(xiàn)要素:本發(fā)明實施例提供了一種流量的分流方法及分流器,旨在解決現(xiàn)有方法難以實現(xiàn)準確分流的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種流量的分流方法,所述方法包括:在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器;在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個;在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。本發(fā)明實施例的另一目的在于提供一種流量的分流器,所述分流器包括:服務器篩選單元,用于在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器;第一分流單元,用于在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個;第二分流單元,用于在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。在本發(fā)明實施例中,由于根據(jù)服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系選擇分流策略,而服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系是動態(tài)變化的,因此,采用上述方法能夠使得分流更準確。附圖說明圖1是本發(fā)明第一實施例提供的一種流量的分流方法的流程圖;圖2是本發(fā)明第一實施例提供的n個活躍用戶變?yōu)?n+1)個活躍用戶的概率以及整個系統(tǒng)變?yōu)?n-1)個活躍用戶的示意圖;圖3是本發(fā)明第二實施例提供的一種流量的分流器的結構圖。具體實施方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例中,在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器,在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個,在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。為了說明本發(fā)明所述的技術方案,下面通過具體實施例來進行說明。實施例一:圖1示出了本發(fā)明第一實施例提供的一種流量的分流方法的流程圖,詳述如下:步驟S11,在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器。其中,預設距離范圍內(nèi)的服務器通常為與接入新用戶的地理位置處于同一個城市內(nèi)的服務器??蛇x地,所述步驟S11具體包括:A1、在接入新用戶時,獲取所述接入新用戶的IP地址,并確定所述接入新用戶的IP地址對應的地理位置。A2、篩選出與確定的地理位置在預設距離范圍內(nèi)的服務器。上述A1和A2中,當用戶向分流器申請連接服務器時,分流器會獲得該用戶的IP地址,通過IP地址,分流器會獲得該IP地址的地理位置(即物理地址),再選擇與該用戶位于同一城市的服務器作為備選服務器。由于篩選出的服務器與確定的地理位置在預設距離范圍內(nèi),而近距離的通信能夠降低丟包率,因此,能夠降低用戶接入任一個備選服務器后的丟包率。步驟S12,在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個。具體地,假設服務器中可承載的理論用戶數(shù)量為C,用戶視頻傳輸所需的最大帶寬相同(這點由視頻通話的分辨率和音頻通話的幀數(shù)和編碼相關),那么服務器的最大帶寬(假設用“B”表示)可以轉化成最大負載人數(shù)(即C)則B=CV。其中,V為服務器提供的網(wǎng)速??蛇x地,將接入新用戶分流至負載較低的服務器,如分流至負載最低的服務器。步驟S13,在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。當服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量(可用N表示)的服務器時,表明可能所有的服務器均超負荷,則為了獲得更好的網(wǎng)絡服務,將接入的新用戶分流至超負荷服務器中丟包率最小的服務器。此時,所述步驟S13具體包括:B1、在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,確定用戶的活躍概率λ為用戶從沉默變?yōu)榛钴S的概率,α為用戶從活躍變?yōu)槌聊母怕?。B2、在篩選出的服務器中存在滿足以下公式的服務器時,計算滿足以下公式的服務器的丟包率,并將所述接入新用戶分流至丟包率最小的服務器:其中,C為服務器中可承載的理論用戶數(shù)量,N為服務器的實際用戶數(shù)量,“·”表示相乘,為一個用戶的平均活躍概率,因此表示具有N個用戶的服務器當前的平均活躍用戶數(shù)量。上述B1和B2中,首先確定的服務器,再計算這些服務器中的丟包率,確定丟包率最小的服務器,進一步過濾了可接入的服務器,避免用戶接入服務器后丟包率過高。進一步地,所述B1具體包括:B11、獲取用戶傳輸?shù)臄?shù)據(jù)量I、用戶的接入時間T以及服務器提供的網(wǎng)速V。B12、根據(jù)下式計算用戶的活躍概率其中,“·”表示相乘。上述B11和B12中,當分流器獲得上個階段用戶傳輸?shù)臄?shù)據(jù)量I,以及用戶的接入時間T后,可以算出在上一時間段用戶的λ和α的比例。進一步地,在獲得所有用戶的λ和α之后,算出所有用戶平均的λ和α。具體地,所有服務器同步向分流器匯報在相同的時間間隔內(nèi)各自的上傳下載流量,以及接入用戶數(shù)量,以及在響應的時間間隔內(nèi)每個用戶傳輸?shù)臄?shù)據(jù)量??蛇x地,在所述步驟S13之前,包括:計算服務器的丟包率,確定丟包率最小的服務器。具體地,定義Fi(t,x)為在t時刻有i個活約用戶,且服務器的緩存隊列小于x的概率,該x為設定的值,當服務器的緩存隊列小于x時,表明該服務器不會丟包,則在t+Δt時刻,Fi(t+Δt,x)的計算公式為:Fi(t+Δt,x)=[N-(i-1)]λΔtFi-1(t,x)+(i+1)αΔtFi+1(t,x)+{1-[(N-i)λ+iα]Δt}Fi[t,x-(i-C)αΔt]+o(Δt)該公式由四部分組成,一部分概率為原來處于i-1狀態(tài)的情況,在t+Δt時刻變?yōu)閕個用戶活躍,第二部分概率為原來處于i+1狀態(tài)的情況,在t+Δt時刻變?yōu)閕個用戶活躍,第三部分為原來有i個用戶活躍,在t+Δt時刻還有i個用戶活躍(可能是不同用戶但是總數(shù)依舊為i),第四種是由其他狀態(tài)變化為i個活躍狀態(tài)。在該公式中o(Δt)≈Δt2大小可以被忽略。使用泰勒公式將上式變換,忽略掉變換完以后的高階因子,變換完成后可以得到如下公式:Fi(t,x)+∂Fi(t,x)∂tΔt=[N-(i-1)]λΔtFi-1(t,x)+(i+1)αΔtFi+1(t,x)+{1-[(N-i)λ+iα]Δt}[Fi(t,x)-∂Fi(t,x)∂xΔx]]]>讓Δt,Δx趨近于0,消除Fi(t,x),等式變化為∂Fi(t,x)∂t=[N-(i-1)]λFi-1(t,x)+(i+1)αFi+1(t,x)-[(N-i)λ+iα]Fi(t,x)-(i-C)α∂Fi(t,x)∂x]]>在穩(wěn)定狀態(tài)下等于0,表明Fi(t,x)不受時間t的影響,可以從Fi(t,x)變化為Fi(x),則原公式變換為:(i-C)α∂Fi(x)∂x=[N-(i-1)]λFi-1(x)-[(N-i)λ+iα]Fi(x)+(i+1)αFi+1(x)---(1)]]>現(xiàn)假設接入用戶的沉默與否相互不影響則對應的條件概率為:πi=CNi(λλ+α)i(αλ+α)N-i]]>為了簡化表示公式我們引入變量λn,μn,λn表示在有N個用戶n個活躍用戶的狀態(tài)下,變?yōu)閚+1個活躍用戶的概率,μn為整個系統(tǒng)變?yōu)閚-1個活躍用戶的概率。在圖2中,0、1、2等表示活躍用戶數(shù)量。結合圖2我們可以輕易得出λn-1μn-1=λnμn。我們用矩陣表達整個系統(tǒng)可以表示為:πM=0,其中π=[π0,π1,π2,...,πn],有了以上條件我們可以計算F(x),首先定義一個行向量:F(x)=[F0(x),F1(x),...,Fn(x)],再定義一個對角線矩陣D=diag[-Cα,(1-C)α,...,(N-C)α],則方程式(1)可以表達成如果i-C不等于0,則矩陣D存在矩陣D-1(即矩陣的逆),則上式可以變化為至此F(x)的求解可以通過MD-1的特征值和特征矩陣獲得。設φi為MD-1的特征矩陣,Zi為特征值。則原式變化為Ziφi=φiMD-1,則服務器的丟包率為1-F(x)。本發(fā)明第一實施例中,在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器,在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個,在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。由于根據(jù)服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系選擇分流策略,而服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系是動態(tài)變化的,因此,采用上述方法能夠使得分流更準確。應理解,在本發(fā)明實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應以其功能和內(nèi)在邏輯確定,而不應對本發(fā)明實施例的實施過程構成任何限定。實施例二:圖3示出了本發(fā)明第二實施例提供的一種流量的分流器的結構圖,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。該流量的分流器包括:服務器篩選單元31、第一分流單元32、第二分流單元33。其中:服務器篩選單元31,用于在接入新用戶時,根據(jù)所述接入新用戶的地理位置篩選出預設距離范圍內(nèi)的服務器??蛇x地,所述服務器篩選單元31包括:用戶地理位置確定模塊,用于在接入新用戶時,獲取所述接入新用戶的IP地址,并確定所述接入新用戶的IP地址對應的地理位置。地理位置篩選模塊,用于篩選出與確定的地理位置在預設距離范圍內(nèi)的服務器。由于篩選出的服務器與確定的地理位置在預設距離范圍內(nèi),而近距離的通信能夠降低丟包率,因此,能夠降低用戶接入任一個備選服務器后的丟包率。第一分流單元32,用于在篩選出的服務器中存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器中的任一個。具體地,假設服務器中可承載的理論用戶數(shù)量為C,用戶視頻傳輸所需的最大帶寬相同(這點由視頻通話的分辨率和音頻通話的幀數(shù)和編碼相關),那么服務器的最大帶寬(假設用“B”表示)可以轉化成最大負載人數(shù)(即C)則B=CV。其中,V為服務器提供的網(wǎng)速??蛇x地,將接入新用戶分流至負載較少的服務器,如分流至負載最少的服務器。第二分流單元33,用于在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,將所述接入新用戶分流至丟包率最小的服務器。可選地,所述第二分流單元33具體包括:用戶的活躍概率確定模塊,用于在篩選出的服務器中不存在可承載的理論用戶數(shù)量大于實際用戶數(shù)量的服務器時,確定用戶的活躍概率λ為用戶從沉默變?yōu)榛钴S的概率,α為用戶從活躍變?yōu)槌聊母怕?。接入服務器確定模塊,用于在篩選出的服務器中存在滿足以下公式的服務器時,計算滿足以下公式的服務器的丟包率,并將所述接入新用戶分流至丟包率最小的服務器:其中,C為服務器中可承載的理論用戶數(shù)量,N為服務器的實際用戶數(shù)量,“·”表示相乘,為一個用戶的平均活躍概率,因此表示具有N個用戶的服務器當前的平均活躍用戶數(shù)量。進一步地,所述用戶的活躍概率確定模塊包括:網(wǎng)絡信息獲取模塊,用于獲取用戶傳輸?shù)臄?shù)據(jù)量I、用戶的接入時間T以及服務器提供的網(wǎng)速V。活躍概率計算模塊,用于根據(jù)下式計算用戶的活躍概率其中,“·”表示相乘。當分流器獲得上個階段用戶傳輸?shù)臄?shù)據(jù)量I,以及用戶的接入時間T后,可以算出在上一時間段用戶的λ和α的比例。進一步地,在獲得所有用戶的λ和α之后,算出所有用戶平均的λ和α??蛇x地,所述分流器包括:丟包率計算單元,用于計算服務器的丟包率,確定丟包率最小的服務器。其中,丟包率的計算與實施例一中的相同,此處不再贅述。本發(fā)明第二實施例中,由于根據(jù)服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系選擇分流策略,而服務器可承載的理論用戶數(shù)量與實際用戶數(shù)量的關系是動態(tài)變化的,因此,采用上述方法能夠使得分流更準確。本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域:
的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。當前第1頁1 2 3