專利名稱:一種基于頻率的分發(fā)數(shù)據(jù)請求方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)分發(fā)領(lǐng)域,尤其涉及一種基于頻率的分發(fā)數(shù)據(jù)請求方法及裝置。
背景技術(shù):
隨著Web2.0網(wǎng)絡(luò)平臺的興起,Web2.0更注重用戶的交互作用,用戶既是網(wǎng)站內(nèi)容的瀏覽者,也是網(wǎng)站內(nèi)容的制造者,因而隨著交互類型的web業(yè)務(wù)越來越多,會產(chǎn)生大量的數(shù)據(jù)請求,所帶給數(shù)據(jù)服務(wù)器的壓力也越來越大。目前,針對大量的數(shù)據(jù)請求,成熟的數(shù)據(jù)服務(wù)解決方案是采用負(fù)載均衡的技術(shù)。所謂負(fù)載均衡,是指將負(fù)載(工作任務(wù))進(jìn)行平衡、分?jǐn)偟蕉鄠€數(shù)據(jù)服務(wù)器上執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。雖然建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上的負(fù)載均衡技術(shù)通過網(wǎng)絡(luò)將請求平均分配給服務(wù)器集群上可以解決一部分壓力,但同時也會犧牲一部分性能。比如,現(xiàn)有業(yè)務(wù)對數(shù)據(jù)的請求并不平均,對一部分?jǐn)?shù)據(jù)的數(shù)據(jù)請求頻繁,而對另一部分?jǐn)?shù)據(jù)的數(shù)據(jù)請求可能間隔時間很長,隨著數(shù)據(jù)請求的增多,如果將不同數(shù)據(jù)不同頻率的數(shù)據(jù)請求通過負(fù)載均衡的技術(shù)分發(fā)至同一個數(shù)據(jù)庫,那么頻繁地尋找請求頻率較高的部分?jǐn)?shù)據(jù)將會耗費(fèi)更長的時間,并且數(shù)據(jù)服務(wù)速度和吞吐的提升效果也不會理想。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明的實施例的一種目的是提供一種能夠根據(jù)業(yè)務(wù)數(shù)據(jù)請求的需求高效率低成本地轉(zhuǎn)發(fā)數(shù)據(jù)請求的方法,從而解決了現(xiàn)有數(shù)據(jù)不平均請求速度導(dǎo)致服務(wù)器性能較低的問題。因此,為了實現(xiàn)上述目的,本發(fā)明提供一種基于頻率的分發(fā)數(shù)據(jù)請求的方法,包括以下步驟:步驟Al,獲得數(shù)據(jù)請求的標(biāo)識,根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置;步驟A2,根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率,將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。根據(jù)本發(fā)明的一實施例,所述請求隊列為0_2~n的環(huán)形隊列,其中n為正整數(shù)。優(yōu)選地,n為32。根據(jù)本發(fā)明的一實施例,所述步驟Al進(jìn)一步包括:A11:根據(jù)該數(shù)據(jù)請求的標(biāo)識計算該數(shù)據(jù)請求的Hash值,按照所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中;A12:修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。根據(jù)本發(fā)明的一實施例,所述步驟A12包括:A121:在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,轉(zhuǎn)到步驟A122中,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾;A122:查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。
根據(jù)本發(fā)明的一實施例,所述步驟A13中向前置換的方式為向前間隔一個或多個位置進(jìn)行互換。根據(jù)本發(fā)明的一實施例,所述步驟A2中還包括根據(jù)該數(shù)據(jù)請求的請求頻率查找相應(yīng)服務(wù)器的步驟A21,該步驟A21具體為:根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中;將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器。本發(fā)明還提供一種相應(yīng)的基于頻率的分發(fā)數(shù)據(jù)請求的裝置,所述裝置包括:請求頻率獲取模塊,用于獲得數(shù)據(jù)請求的標(biāo)識并根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置;分發(fā)模塊,用于根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。根據(jù)本發(fā)明的一實施例,所述請求頻率獲取模塊還包括:位置配置單元,用于根據(jù)該數(shù)據(jù)請求的標(biāo)識計算該數(shù)據(jù)請求的Hash值,按照所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中;位置修正單元,用于修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。根據(jù)本發(fā)明的一實施例,所述位置修正單元包括:查找單元,用于在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,則在置換單元對該數(shù)據(jù)請求進(jìn)行位置置換,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾;置換單元,用于查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。根據(jù)本發(fā)明的一實施例,所述分發(fā)模塊還包括:服務(wù)器查找單元,用于根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中;轉(zhuǎn)發(fā)單元,用于將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器進(jìn)行該數(shù)據(jù)請求的轉(zhuǎn)發(fā)。本發(fā)明通過對數(shù)據(jù)請求按照請求頻率進(jìn)行標(biāo)記,將頻繁的數(shù)據(jù)請求轉(zhuǎn)發(fā)至速度和性能高的服務(wù)器或者緩存,比現(xiàn)有“負(fù)載均衡”技術(shù),不僅有較高的效率和較低的成本,而且是現(xiàn)有業(yè)務(wù)數(shù)據(jù)需求特點(diǎn)的最合適的解決方案之一。
圖1為根據(jù)本發(fā)明的基于頻率的分發(fā)數(shù)據(jù)請求方法的流程圖;圖2為圖1中步驟Al的一種具體實施方式
的流程圖;圖3為圖1中的步驟A12的一種具體實施方式
的流程圖;圖4為根據(jù)本發(fā)明的請求隊列的一種示例的示意圖;圖5為根據(jù)本發(fā)明的置換方式的一種示例的示意圖;圖6為根據(jù)本發(fā)明的服務(wù)器配置在請求隊列中的一種示例的示意圖;圖7為根據(jù)本發(fā)明的基于頻率的分發(fā)數(shù)據(jù)請求裝置的框圖。
具體實施例方式下面將詳細(xì)描述本發(fā)明的具體實施例。應(yīng)當(dāng)注意,這里描述的實施例只用于舉例說明,并不用于限制本發(fā)明。在介紹本發(fā)明的構(gòu)思之前,先解釋一下在本發(fā)明用到的術(shù)語,以便于更好地理解本發(fā)明的技術(shù)方案。本文所涉及的術(shù)語“Hash” 一般翻譯做“散列”(也有直接音譯為“哈希”),其含義是指將任意長度的輸入(又叫做預(yù)映射,pre-1mage)通過散列算法變換成固定長度的輸出,該輸出就是Hash值(也即散列值)。這種轉(zhuǎn)換是一種壓縮映射,也就是,散列值的空間通常遠(yuǎn)小于輸入的空間,不同的輸入可能會散列成相同的輸出,而不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)。Hash主要用于信息安全領(lǐng)域中加密算法,它把一些不同長度的信息轉(zhuǎn)化成雜亂的128位的編碼,這些編碼值叫做Hash值。也可以說,Hash就是找到一種數(shù)據(jù)內(nèi)容和數(shù)據(jù)存放地址之間的映射關(guān)系:*若結(jié)構(gòu)中存在和關(guān)鍵字K相等的記錄,則必定在f (K)的存儲位置上。由此,不需比較便可直接取得所查記錄。稱這個對應(yīng)關(guān)系f為散列函數(shù)(Hash function),按這個思想建立的表為散列表;*對不同的關(guān)鍵字可能得到同一散列地址,即keyl幸key2,而f (keyl)=f(key2),這種現(xiàn)象稱沖突。具有相同函數(shù)值的關(guān)鍵字對該散列函數(shù)來說稱作同義詞。綜上所述,根據(jù)散列函數(shù)H(key)和處理沖突的方法將一組關(guān)鍵字映像到一個有限的連續(xù)的地址集(區(qū)間)上,并以關(guān)鍵字在地址集中的“像”作為記錄在表中的存儲位置,這種表便稱為散列表,這一映象過程稱為散列造表或散列,所得的存儲位置稱散列地址;*若對于關(guān)鍵字集合中的任一關(guān)鍵字,經(jīng)散列函數(shù)映像到地址集合中任何一個地址的概率是相等的,則稱此類散列函數(shù)為均勻散列函數(shù)(Uniform Hash function),這就是使關(guān)鍵字經(jīng)過散列函數(shù)得到一個“隨機(jī)的地址”,從而減少沖突。 本發(fā)明的構(gòu)思是根據(jù)數(shù)據(jù)的請求頻繁度將其分發(fā)到不同的數(shù)據(jù)服務(wù)器中,也即,將頻繁的數(shù)據(jù)請求能夠分發(fā)至性能好的服務(wù)器,而將不頻繁的數(shù)據(jù)請求分發(fā)至性能一般的服務(wù)器,從而最大化利用各服務(wù)器,避免了性能不好由于吞吐大量數(shù)據(jù)而使數(shù)據(jù)服務(wù)速度較低的問題。本發(fā)明的構(gòu)思在具體實現(xiàn)上主要為獲取請求數(shù)據(jù)在指定范圍或尺度上的相對頻率值,并按照該頻率值選擇指定的數(shù)據(jù)服務(wù)器。下面結(jié)合附圖將詳細(xì)描述本發(fā)明。首先,對于具體的某個數(shù)據(jù)請求,需要獲得該數(shù)據(jù)請求相對其它數(shù)據(jù)請求的頻繁度,即該數(shù)據(jù)請求在包含多個請求的請求隊列中的請求頻率,該請求頻率值即為在請求隊列中的位置。請求頻率是基于該數(shù)據(jù)請求的標(biāo)識來獲得的。在數(shù)據(jù)業(yè)務(wù)交換的過程中,對于每個具體的請求一般會根據(jù)數(shù)據(jù)請求的內(nèi)容為該數(shù)據(jù)請求分配唯一的請求標(biāo)識,因而對于具有不同內(nèi)容的數(shù)據(jù)請求具有不同的請求標(biāo)識。當(dāng)然也會存在為沒有為數(shù)據(jù)請求分配請求標(biāo)識的情況,這時候也可以通過該數(shù)據(jù)請求的內(nèi)容來獲得請求頻率。因此,如圖1所示,本發(fā)明的方法包括步驟Al:獲得數(shù)據(jù)請求的標(biāo)識,根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置。根據(jù)本發(fā)明的一個實施例,如圖2所示,步驟Al中根據(jù)數(shù)據(jù)請求的請求標(biāo)識來獲得請求頻率的步驟包括:步驟All:根據(jù)請求標(biāo)識計算該數(shù)據(jù)請求的Hash值,根據(jù)所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中。在步驟All中,請求隊列優(yōu)選為0_2~n環(huán)形隊列,其中n為正整數(shù),這里優(yōu)選為
0-2~32范圍的環(huán)形隊列,如圖5所示。在該環(huán)形隊列的初始化中,按照對不同數(shù)據(jù)請求的數(shù)據(jù)標(biāo)識所計算出的Hash值的大小對該數(shù)據(jù)請求進(jìn)行初始化排列。優(yōu)選地,這里根據(jù)所計算出的Hash值對各數(shù)據(jù)請求進(jìn)行初始化排列的方式為平均化地配置在請求隊列中,雖然在第一次初始化時,根據(jù)各個數(shù)據(jù)請求的Hash值,有的數(shù)據(jù)請求只請求一次卻排在隊列的前面,有的數(shù)據(jù)請求可能會頻繁請求卻排在隊列的尾部,但是隨著請求的增多,請求隊列中的各數(shù)據(jù)請求會逐漸地按照請求的頻繁度進(jìn)行先后順序的排列。步驟A12:修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。由于該請求隊列中排列有多個不同的數(shù)據(jù)請求,而不同的數(shù)據(jù)請求的請求頻繁度也不同,因此,在該請求隊列中可能存在多個具有相同標(biāo)識的數(shù)據(jù)請求。根據(jù)該請求隊列中數(shù)據(jù)請求的標(biāo)識的出現(xiàn)次數(shù),不斷修正數(shù)據(jù)請求在請求隊列中的位置。 根據(jù)本發(fā)明的一個實施例,如圖3所示,步驟A12還具體包括以下步驟:A121:在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,轉(zhuǎn)到步驟A122中,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾;A122:查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。很明顯,在步驟A121中,如果在該請求隊列中沒有相同的數(shù)據(jù)請求的標(biāo)識,則表明該數(shù)據(jù)請求為首次請求,其請求頻率為最低,因而將該數(shù)據(jù)的首次請求初始化為請求隊列的隊尾。相反地,如果該請求隊列中存在相同的數(shù)據(jù)請求標(biāo)識,根據(jù)查找的次數(shù)不斷地向前置換該數(shù)據(jù)請求的位置,存在相同的數(shù)據(jù)請求標(biāo)識越多,說明該數(shù)據(jù)請求越頻繁,則該數(shù)據(jù)請求在隊列中的位置則越靠前。其中,這里向前置換位置的方式為與向前間隔一個位置進(jìn)行置換。如圖4所示,有N個數(shù)據(jù)請求在請求隊列中,其中存在由前到后排列的A、B、C三個數(shù)據(jù)請求,由于在隊列中再次查到標(biāo)識C,就將C和A的位置進(jìn)行置換。當(dāng)然也可根據(jù)精確度的要求,置換的間隔位置可以為多種,只要不超出所計算出的隊列的范圍即可。置換后獲得該數(shù)據(jù)請求在請求隊列中的最終位置,可獲知該數(shù)據(jù)請求在該請求隊列中的請求頻率,其中該數(shù)據(jù)請求在該請求隊列中的位置越靠前,則該數(shù)據(jù)請求的請求頻率越聞。接下來,根據(jù)獲得的該數(shù)據(jù)請求的請求頻率,將其分發(fā)至相應(yīng)的服務(wù)器中。因此,如圖1所示,本發(fā)明還包括步驟A2:根據(jù)獲得該數(shù)據(jù)請求的請求頻率,將該數(shù)據(jù)請求轉(zhuǎn)發(fā)至相應(yīng)的服務(wù)器上。其中在步驟A2中,這里所述的相應(yīng)的服務(wù)器為具有與該數(shù)據(jù)請求的請求頻率相適應(yīng)性能的服務(wù)器,也即,高請求頻率的數(shù)據(jù)請求分發(fā)至高性能的服務(wù)器,而低請求頻率的數(shù)據(jù)請求分發(fā)至低性能的服務(wù)器。根據(jù)本發(fā)明的一個實施例,也可將不同性能的服務(wù)器配置在請求隊列中,這樣就可以直接在請求隊列查找數(shù)據(jù)請求的相應(yīng)的服務(wù)器。例如,根據(jù)各服務(wù)器標(biāo)識的Hash值以及根據(jù)各服務(wù)器性能將各服務(wù)器配置在上述環(huán)形隊列中。例如,如圖6所示,低速低容量服務(wù)器C配置在環(huán)形隊列的隊尾,高速低容量服務(wù)器B配置在中間,而低速高容量服務(wù)器A配置在隊首,并且對于配置在隊列中的服務(wù)器而言,其位置距離上個服務(wù)器越長,該服務(wù)器將承受較其它服務(wù)器更多的請求。本實施例所述的配置服務(wù)器在隊列中的方式不限于此,也可根據(jù)各種需求配置服務(wù)器在隊列中,比如,對于速度要求比較高的數(shù)據(jù)請求,可以將高速低容量的服務(wù)器B放在隊首,而低速高容量的服務(wù)器A配置在隊列中間,以滿足請求頻繁的數(shù)據(jù)的訪問速度需求。將不同性能的服務(wù)器配置在請求隊列中后,針對不同的數(shù)據(jù)請求查找相應(yīng)的轉(zhuǎn)發(fā)服務(wù)器。根據(jù)本發(fā)明的一個實施例,所述步驟A2中還包括根據(jù)該數(shù)據(jù)請求的請求頻率查找相應(yīng)服務(wù)器的步驟A21,該步驟A21具體為:根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中;將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器。因而從上述的實施例中可以看出,通過對數(shù)據(jù)請求按照請求頻率進(jìn)行排列,將頻繁的小部分通過速度和性能高的服務(wù)器轉(zhuǎn)發(fā)或者緩存,比現(xiàn)有的“負(fù)載均衡”技術(shù),不僅具有較高的效率和較低的成本,而且是現(xiàn)有業(yè)務(wù)數(shù)據(jù)需求特點(diǎn)的最合適的解決方案之一。下面結(jié)合一個具體實施例,描述了將一標(biāo)識為A的數(shù)據(jù)請求分發(fā)至相應(yīng)的服務(wù)器的步驟流程:獲得數(shù)據(jù)請求的請求標(biāo)識A,計算該請求標(biāo)識的Hash值;根據(jù)所計算出的Hash值,將該數(shù)據(jù)請求配置在環(huán)形隊列中;查找在該環(huán)形隊列中是否還有該數(shù)據(jù)請求的標(biāo)識A ;如果沒有查找到,則將數(shù)據(jù)請求初始化至隊列最尾部;如果查找到,則將該數(shù)據(jù)請求的當(dāng)前位置向前(順時針)間隔一個位置進(jìn)行置換,然后繼續(xù)查找,直至查找完環(huán)形隊列中存在的所有標(biāo)識A ;將置換后的該數(shù)據(jù)請求的最終位置向前(順時針)查找服務(wù)器標(biāo)識;找到相應(yīng)的服務(wù)器后,轉(zhuǎn)發(fā)該數(shù)據(jù)請求。相應(yīng)地,如圖7所示,本發(fā)明還提供一種基于頻率的分發(fā)數(shù)據(jù)請求的裝置,所述裝置包括:請求頻率獲取模塊,用于獲得數(shù)據(jù)請求的標(biāo)識并根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置;分發(fā)模塊,用于根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。根據(jù)本發(fā)明的一個實施例,所述請求頻率獲取模塊還包括:位置配置單元,用于根據(jù)該數(shù)據(jù)請求的標(biāo)識計算該數(shù)據(jù)請求的Hash值,按照所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中;
位置修正單元,用于修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。根據(jù)本發(fā)明的一個實施例,所述位置修正單元包括:查找單元,用于在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,則在置換單元對該數(shù)據(jù)請求進(jìn)行位置置換,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾;置換單元,用于查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。根據(jù)本發(fā)明的一個實施例,所述分發(fā)模塊還包括:服務(wù)器查找單元,用于根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中;轉(zhuǎn)發(fā)單元,用于將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器進(jìn)行該數(shù)據(jù)請求的轉(zhuǎn)發(fā)。雖然已參照幾個典型實施例描述了本發(fā)明,但應(yīng)當(dāng)理解,所用的術(shù)語是說明和示例性、而非限制性的術(shù)語。由于本發(fā)明能夠以多種形式具體實施而不脫離發(fā)明的精神或?qū)嵸|(zhì),所以應(yīng)當(dāng)理解,上述實施例不限于任何前述的細(xì)節(jié),而應(yīng)在隨附權(quán)利要求所限定的精神和范圍內(nèi)廣泛地解釋,因此落入權(quán)利要求或其等效范圍內(nèi)的全部變化和改型都應(yīng)為隨附權(quán)利要求所涵蓋。
權(quán)利要求
1.一種基于頻率的分發(fā)數(shù)據(jù)請求的方法,其特征在于,所述方法包括以下步驟: 步驟Al,獲得數(shù)據(jù)請求的標(biāo)識,根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置; 步驟A2,根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率,將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述請求隊列為0-2~n的環(huán)形隊列,其中n為正整數(shù)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述步驟Al進(jìn)一步包括: All:根據(jù)該數(shù)據(jù)請求的標(biāo)識計算該數(shù)據(jù)請求的Hash值,按照所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中; A12:修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟A12包括: A121:在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,轉(zhuǎn)到步驟A122中,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾; A122:查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟A13中向前置換的方式為向前間隔一個或多個位置進(jìn)行互換。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟A2中還包括根據(jù)該數(shù)據(jù)請求的請求頻率查找相應(yīng)服務(wù)器的步驟A21,該步驟A21具體為: 根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中; 將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器。
7.一種基于頻率的分發(fā)數(shù)據(jù)請求的裝置,其特征在于,所述裝置包括: 請求頻率獲取模塊,用于獲得數(shù)據(jù)請求的標(biāo)識并根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置; 分發(fā)模塊,用于根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述請求頻率獲取模塊還包括: 位置配置單元,用于根據(jù)該數(shù)據(jù)請求的標(biāo)識計算該數(shù)據(jù)請求的Hash值,按照所計算出的Hash值將該數(shù)據(jù)請求配置在請求隊列中; 位置修正單元,用于修正該數(shù)據(jù)請求在該請求隊列中的位置,基于該位置獲得該數(shù)據(jù)請求的請求頻率。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述位置修正單元包括: 查找單元,用于在該請求隊列中查找是否還存在與該數(shù)據(jù)請求相同的標(biāo)識,若存在,則在置換單元對該數(shù) 據(jù)請求進(jìn)行位置置換,否則將該數(shù)據(jù)請求初始化至該請求隊列的隊尾;置換單元,用于查到一次與該數(shù)據(jù)請求相同的標(biāo)識,則就將該數(shù)據(jù)請求在該請求隊列中的當(dāng)前位置向前置換一次,直到在該請求隊列中查找完所有的與該數(shù)據(jù)請求相同的標(biāo)識,然后獲得該數(shù)據(jù)請求在請求隊列中的最終位置。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分發(fā)模塊還包括: 服務(wù)器查找單元,用于根據(jù)該數(shù)據(jù)請求的請求頻率,以該數(shù)據(jù)請求在請求隊列中的位置為起始,在請求隊列中向前查找服務(wù)器的標(biāo)識,其中不同性能的服務(wù)器根據(jù)服務(wù)器的標(biāo)識的hash值和服務(wù)器的性能配置在請求隊列中; 轉(zhuǎn)發(fā)單元,用于將找到的第一個服務(wù)器作為轉(zhuǎn)發(fā)該數(shù)據(jù)請求的相應(yīng)服務(wù)器進(jìn)行該數(shù)據(jù)請求的轉(zhuǎn)發(fā) 。
全文摘要
一種基于頻率的分發(fā)數(shù)據(jù)請求方法及裝置。本發(fā)明公開了一種基于頻率的分發(fā)數(shù)據(jù)請求的方法,包括以下步驟步驟A1,獲得數(shù)據(jù)請求的標(biāo)識,根據(jù)該數(shù)據(jù)請求的標(biāo)識獲得請求頻率,其中該請求頻率的值為在請求隊列長度中的位置;步驟A2,根據(jù)所獲得的該數(shù)據(jù)請求的請求頻率,將該數(shù)據(jù)請求發(fā)至相應(yīng)的服務(wù)器上。本發(fā)明能夠提升服務(wù)器的數(shù)據(jù)訪問速度。
文檔編號H04L29/08GK103200208SQ20121000402
公開日2013年7月10日 申請日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者張楠 申請人:湖南智源信息網(wǎng)絡(luò)技術(shù)開發(fā)有限公司