專利名稱:一種基于dns解析的流量調度方法、裝置及服務器的制作方法
技術領域:
本發明涉及互聯網通信技術領域,特別涉及一種基于DNS解析的流量調度方法。
技術背景
在互聯網中,一個內容服務往往由多個分布式的內容服務器提供。這些內容服務器具有相同的域名,但是具有不同的IP地址。為了有效的利用所有的內容服務器的資源, 需要將所有對該內容的訪問請求均衡的調度到這些內容服務器上。現有技術中主要采用基于DNS (域名系統)解析的流量調度方法,具體過程如下
1.本地DNS接收客戶端的請求,向權威域名服務器發送域名解析請求;
2.權威域名服務器將該域名對應的IP地址采用等比例返回給本地DNS ;
3.本地DNS將IP地址再返回給客戶端,客戶端根據返回的IP地址向對應的內容服務器發送內容訪問請求。
從上述調度過程可以看出,現有技術基于DNS解析進行流量調度時,采用的是簡單的輪循調度算法,將訪問請求均勻的調度到各個內容服務器上,各個內容服務器對流量進行等比例分配。這種調度算法的缺點是很明顯的
1.不能區分內容服務器的性能差異。各個內容服務器的處理性能,甚至網絡帶寬都有可能不一樣,如果要保證每個服務器都能處理分配給他的流量,則采用等比例分配時只能按照性能最差的服務器分配流量,這將導致性能較好的服務器的利用率低下。
2.不能反映服務器的當前運行狀態。有些客戶端可以自主選擇內容服務器,這樣將導致這部分客戶端的流量不被調度系統控制。如果DNS負載均衡調度系統將其他流量平均分配到各個內容服務器,這對于這部分自主選擇內容服務器的請求所訪問的內容服務器,其負載可能遠大于其他服務器。
從上述兩個缺點都可以看出,現有基于DNS負載均衡技術中的輪詢調度算法要么不能有效的保證各個內容服務器的負載均衡,要么內容服務器的利用率低下。發明內容
本發明提供一種基于DNS解析的流量調度的方法,能夠同時保證各個內容服務器的負載均衡,同時提高內容服務器的利用率。
一種基于DNS解析的流量調度方法,包括
接收域名解析請求并獲得域名;
從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例;
將選擇的內容服務器返回給域名解析請求者。
一種基于DNS解析的流量調度裝置,包括
接收模塊,用于接收域名解析請求并獲得域名;
選擇模塊,用于從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例;
發送模塊,用于將選擇的內容服務器返回給域名解析請求者。
本發明實施例中,在DNS解析調度方法基礎上,通過按設定的比例將流量調度到多個內容服務器,這樣就能根據內容服務器的性能以及運行狀態動態調整分配到各個內容服務器的流量,能夠保證各個內容服務器的負載均衡,同時提高內容服務器的利用率,使動態負載均衡成為可能,設置得當,可以提高服務質量;提高帶寬利用率;提高服務器的利用率,減少服務器使用數量。
圖1為本發明實施例提供的基于DNS解析的流量調度方法流程圖2為本發明實施例一提供的按照設定比例選擇內容服務器的具體方法流程圖3為本發明實施例二提供的按照設定比例選擇內容服務器的具體方法流程圖4為本發明實施例三提供的第一種按照設定比例選擇內容服務器的具體方法流程圖5為本發明實施例三提供的第二種按照設定比例選擇內容服務器的具體方法流程圖6為為按比例分配的直線圖7為本發明實施例四提供的按照設定比例選擇內容服務器的具體方法流程圖8為本發明實施例提供的基于DNS解析的流量調度裝置結構圖。
具體實施方式
本發明實施例提供了一種基于DNS解析的流量調度的方法,通過按設定的比例將流量調度到各內容服務器,能夠解決現有技術中基于DNS解析的流量調度不能區分不同內容服務器的性能差別導致性能較好的服務器利用率低下的問題,以及一些不受DNS解析調度的流量帶來的內容服務器負載不均衡的問題,使得各個內容服務器的負載均衡,同時提高內容服務器的利用率。
本發明實施例提供的基于DNS解析的流量調度的方法,如圖1所示,包括
S101、接收域名解析請求并獲得域名;
其中,權威域名服務器接收域名解析請求者發送的域名解析請求,具體地,域名解析請求者一般是本地LDNS,或者客戶端。域名解析請求中攜帶需要解析的域名。
S102、根據設定比例選擇一個該域名對應的內容服務器,也就是從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數滿足設定比例;
基本滿足設定比例,是指在每次選擇后,多個服務器之間的選擇次數可能不是精確的滿足設定比例,但會一直接近設定比例。
權威域名服務器根據預先設定比例選擇一個該域名對應的內容服務器,例如如果內容服務器1和內容服務器2之間的設定比例為5 2,則選擇內容服務器時,權威域名服務器在接收到域名解析請求時,會5次選擇內容服務器1,2次選擇內容服務器2。
S103、將選擇的內容服務器返回給域名解析請求者。
較佳地,權威域名服務器將選擇的內容服務器的IP地址返回給域名解析請求者。
較佳地,步驟S102中,預先設定的比例是根據各內容服務器的可用流量設定,并且在進行域名解析的過程中可以動態調整。在進行域名解析的過程中,權威域名服務器可以根據當前各內容服務器的可用流量進行動態調整。
采用上述方法,能夠同時保證各個內容服務器的負載均衡,同時提高內容服務器的利用率。使得權威域名服務器能夠基于DNS的解析對各內容服務器的流量具有靈活的調控能力,最大限度利用規格不同內容服務器,和大小不等的網絡帶寬能力。
下面詳細說明步驟S102中選擇內容服務器的具體方法。
實施例一是采用均勻分布函數,使得各內容服務器之間的選擇次數基本滿足設定比例;實施例二、實施例三分別以隨機函數和散列函數為例進行說明;實施例四是采用線性的方法使得各內容服務器之間的選擇次數基本滿足設定比例。
實施例一
實施例一采用均勻分布函數選擇內容服務器,使得各內容服務器之間的選擇次數基本呈現比例關系,即能夠按照設定比例提供域名解析。
參見圖2,為實施例一提供的按照設定比例選擇內容服務器的具體方法,包括
S201、預先選定一個均勻分布函數;
其中,均勻分布函數的函數值是均勻分布的,假設函數值為1到K,也就是1到K值每個數出現概率都是1/K ;
將均勻分布函數的所有函數值預先根據設定的比例對應到各內容服務器, 即均勻分布函數的所有函數值中,對應到器服務器IPp IP2......IPnW個數的比例為·· kg · · · · k^n ο
其中,均勻分布函數具體包括隨機函數或者散列函數,也可以是其他函數,這里不再一一列舉。
S202、利用設置的均勻分布函數,確定本次域名解析請求的函數值;
S203、確定該函數值對應的內容服務器,將該內容服務器作為本次域名解析請求的內容服務器。
其中,在步驟S201中,可以將均勻分布函數的函數值按照該設定比例 k! k2 k3 ...kn分布在N個比例集合Ci中,即各個比例集合中的函數值的個數比例為 k! k2 k3 ...kn,并且每個比例集合對應到相應比例的內容服務器;
則在步驟S203中,可以確定該函數值所屬的比例集合,并將該比例集合對應的內容服務器作為本次域名解析請求選擇的內容服務器。
實施例二
實施例二采用隨機方法選擇內容服務器。本方法主旨是在權威域名服務器中,按照設定比例提供域名解析,同時保證每次選擇的內容服務器的IP地址都是不被預知的。
例如對于域名XXX有η個內容服務器,其IP地址分別為=IP1, IP2, . . . IPn,設定的域名解析分配比例為1^ k2 k3 ...1^(也就是設定1 1、1己、1 3、...1 11的流量調度比例為ki k2 k3 . . . kn);即在域名解析過程中,需要滿足HVIP2,. ..IPn的分配比例為 Ii1 k2 k3 …kn。
參見圖3,為實施例二提供的按照設定比例選擇內容服務器的具體方法,包括
S301、預先選定一個隨機函數,其中,選擇的隨機函數是一個均勻分布的隨機函數,并且選擇的隨機函數至少有總的比例份數個隨機值;
例如假如設定比例為5 2(0.5 0.2),則隨機函數至少由7個隨機值,假設設定的比例為K k2 k3 ..人,且1^、1^2、1^、..人為自然數,則總的比例份數為1(= (k1+k2+k3+... +kn) 0并且,一般設定的比例都可以轉變為& k2 k3 ...kn,且kp lc2、 k3、... kn為自然數這種表示方式,并確定其總的比例份數。
將隨機函數的所有隨機值預先根據設定的比例對應到各內容服務器,即隨機函數的所有隨機值中,對應到器服務器IPpIP2......IPn的個數的比例為1^ k2 k3 ...kn。
S302、利用隨機函數確定本次域名解析請求的隨機值;
S303、確定該隨機值對應的內容服務器,將該內容服務器作為本次域名解析請求選擇的內容服務器。
其中,在步驟S301中,可以將隨機函數的隨機值按照該設定比例 k! k2 k3 ...kn分布在N個比例集合Ci中,即各個比例集合中的隨機值的個數比例為 k! k2 k3 ...kn,并且每個比例集合對應到相應比例的內容服務器;
則在步驟S203中,可以確定該隨機值所屬的比例集合,并將該比例集合對應的內容服務器作為本次域名解析請求選擇的內容服務器。
采用本實施例二的方法,因為隨機函數是均勻分布的,并且隨機值按設定的比例對應到各內容服務器,因此在訪問量大的情況下,根據每次域名解析請求的隨機值選擇內容服務器,能夠盡可能使得各內容服務器之間的選擇次數基本滿足設定比例,也就是各內容服務器能夠按照設定的比例進行流量分配。
并且,由于采用的隨機函數,隨機函數每次輸出的數值并不可知,也就是每次選擇的內容服務器并不可以提前預知,能夠盡可能避免干擾引起的流量不均,保證內容服務器的服務安全。
下面再以一個具體的例子詳細說明實施例二的方法。
步驟1、初始化K= (1^+1^+1^+...+10,其中K k2 k3 ...knSSSip^ip^ IP3、... IPn的流量調度比例;
假設Ic1 k2 k3 ...kn為自然數,K為自然數;
2、預先初始化一個均勻分布的隨機函數randomOO,且該函數按照均勻分布輸出隨機值為1到K的自然數;
3、將隨機值1到K的自然數劃分為η個集合Q、C2, C3. . . Cn,其中[1,kj屬于C1, [k^+1, kj 屬于 Ci ;
其中,集合CpCyC3... Cn分別對應到內容服務器IP1、IP2......IPn。
當然,劃分的時候也可以采用其他的劃分方法,只要保證C” C2、C3. . . Cn集合中元素個數的比例為& k2 k3 ...kn即可。
上述步驟為預先初始化過程,在每次接收到域名解析請求并分配IP地址時,只需要執行以下過程即可
4、利用隨機函數random(K),輸出本次域名解析請求的隨機值R,其中,1彡R彡K ;
5、確定R所在的集合Ci,并輸出IPi作為本次選擇的內容服務器的IP地址。
實施例三
實施例三采用哈希方法選擇內容服務器,本實施例的主旨是利用散列函數在權威域名服務器中,按照設定的比例提供域名解析,同時保證各解析請求者獲得的IP地址是穩定的。
利用哈希方法解析域名的流量調度方法,一般有兩種基于源地址的哈希方法,和基于域名的哈希方法。
方法一、基于源地址的哈希方法
參見圖4,為實施例三提供的第一種采用哈希方法選擇內容服務器的具體方法,包括
S401、預先選定一個散列函數,其中,散列函數根據輸入的源地址輸出散列值,并且散列函數的散列值預先按設定比例對應到各內容服務器;
將散列函數的所有散列值預先根據設定的比例對應到各內容服務器,即散列函數的所有散列值中,對應到器服務器IP1JP2......IPn的個數的比例為1^ k2 k3 ...kn;
S402、確定發送所述域名解析請求的源地址;
S403、根據該源地址,利用選定的散列函數確定該源地址對應的散列值;
S404、將該散列值對應的內容服務器作為本次域名解析請求選擇的內容服務器。
在步驟S401中,可以將散列函數的散列值預先按照該設定比例 k! k2 k3 ...kn分布在N個比例集合Ci中,即各個比例集合中的散列值的個數比例為 k! k2 k3 ...kn,并且每個比例集合對應到相應比例的內容服務器;
則在步驟S404中,可以確定該散列值所屬的比例集合,并將該比例集合對應的內容服務器作為本次域名解析請求選擇的內容服務器。
下面再以一個具體的例子詳細說明本實施例三的方法一。
步驟1、初始化K= (1^+1^+1^+...+10,其中K k2 k3 ...knSSSip^ip^ IP3、... IPn的流量調度比例;
假設Ic1 k2 k3 ...kn為自然數,K為自然數;
步驟2、預先初始化一個散列函數hash (K,IP),其中,該函數根據DNS請求者的源地址輸出散列值為1到K的自然數;
步驟3、將散列值1到K的自然數劃分為η個集合CpCyC3... Cn,其中[1,kj屬于 C1, [k^+LkJ 屬于 Ci ;
其中,集合CpCyC3... Cn分別對應到內容服務器IP1、IP2......IPn。
當然,劃分的時候也可以采用其他的劃分方法,只要保證C” C2、C3. . . Cn集合中元素個數的比例為& k2 k3 ...kn即可。
上述步驟為預先初始化過程,在每次接收到域名解析請求并分配IP地址時,只需要執行以下過程即可
步驟4、接收到域名解析請求時,確定發送該請求的源地址;
步驟5、根據源地址,利用散列函數hash (K,IP),確定該源地址對應的散列值;
步驟6、確定該源地址對應的散列值所屬的比例集合;
步驟7、將所屬的比例集合對應的IP地址作為本次域名解析請求的IP地址返回給域名請求者。
采用上述方法一,因為將散列函數的散列值預先按照設定的比例對應到各內容服8務器,因此,在接收到大量用戶的域名解析請求時,能夠盡可能使得各內容服務器之間的選擇次數基本滿足設定比例,也就是能夠保證權威域名服務器能夠對各內容服務器按照設定比例進行流量調度。
同時,因為根據域名解析請求的源地址確定散列值,能夠保證相同源地址獲得的內容服務器相同,并且對各內容服務器來說,其面對的客戶群是穩定的,因此,各內容服務器的流量穩定。
方法二、基于域名的哈希方法
參見圖5,為實施例三提供的第二種按照哈希方法選擇內容服務器的具體方法,包括
S501、預先選定一個散列函數,其中,該散列函數根據域名輸出散列值,并且散列函數的散列值預先按設定比例對應到各內容服務器;
將散列函數根據域名輸出的所有散列值預先根據設定的比例對應到各內容服務器,即散列函數的所有散列值中,對應到器服務器IPp IP2......IPn的個數的比例為·· kg · · · · k^n ;
S502、確定所述域名解析請求對應的域名;
S503、根據該域名,利用選定的散列函數確定該域名對應的散列值;
S504、將該散列值對應的內容服務器作為本次域名解析請求選擇的內容服務器。
在步驟S501中,可以將該散列函數的散列值預先按照設定比例 k! k2 k3 ...kn分布在N個比例集合Ci中,即各個比例集合中的散列值的個數比例為 k! k2 k3 ...kn,并且每個比例集合對應到相應比例的內容服務器;
則在步驟S604中,可以確定該散列值所屬的比例集合,并將該比例集合對應的內容服務器作為本次域名解析請求選擇的內容服務器。
下面再以一個具體的例子詳細說明本實施例三的方法二。
步驟1、初始化 K= (1^+1 +! +...+!^),其中 Ii1 k2 k3 ...kn 為設定 IPi、IP2、 IP3、. . . IPn的流量調度比例;
假設ki k2 k3 ...kn為自然數,K為自然數;
步驟2、預先初始化一個散列函數hash (K,DOMAIN),其中,該函數根據域名DOMAIN 輸出散列值為1到K的自然數;
步驟3、將散列值為1到K的自然數劃分為η個比例集合C” C2, C3. · · Cn,其中[1, kj 屬于 C1, [k^+LkJ 屬于 Ci ;
其中,集合CpCyC3. . . Cn分別對應到內容服務器IP1、IP2......IPn。
當然,劃分的時候也可以采用其他的劃分方法,只要保證Cp C2, C3. . . Cn集合中元素個數的比例為& k2 k3 ...kn即可。
上述步驟為預先初始化過程,在每次接收到域名解析請求并分配IP地址時,只需要執行以下過程即可
步驟4、接收到域名解析請求時,確定該域名解析請求對應的域名;
步驟5、根據該域名,利用選定的散列函數hash (K,DOMAIN),確定該域名對應的散列值;
步驟6、確定該散列值所屬的比例集合;
步驟7、將該比例集合對應的IP地址作為本次域名解析請求的IP地址返回給域名解析請求者。
采用上述方法二,因為將散列函數的散列值預先按照設定的比例對應到各內容服務器,因此,在接收到對大批量域名的域名解析請求時,能夠盡可能使得各內容服務器之間的選擇次數滿足設定比例,也就是能夠保證權威域名服務器能夠對各內容服務器按照設定比例進行流量調度。
同時,因為根據域名解析請求的域名確定散列值,能夠保證相同域名內容對應的內容服務器相同,因此,可以對內容服務器的處理內容進行分類,可以保證每臺內容服務器處理內容少而穩定。
本發明實施例的上述方法一般應用在權威域名服務器中,用于根據上述方法分配域名解析結果,但本發明的方法并不限用于權威域名服務器中,可以用于任何域名解析服務器中,均能夠根據上述方法進行域名解析分配。
實施例四、
實施例四采用線性算法選擇內容服務器。本方法的主旨是在每次選擇的過程中都盡可能均勻地按照設定比例提供域名解析,分配內容服務器。
為了便于理解,舉例設定IP1和IP2的比例為5 2 ;如圖6所示,為按比例分配的直線圖;如果在絕對按比例分配的情況下,每次選擇IP地址后,IP1和IP2的輸出比例應該沿圖中的直線向給出,但解析時每次只能給出一個IP地址,因此,IP1和IP2的輸出次數必須以整數次形式出現,因此,必然要偏離理想比例直線,采用本實施例的方法,就可以使偏差最小。在本實施例中采用線性算法能夠使得每次選擇后各內容服務器之間的選擇次數都盡可能接近設定的比例。
對于域名XXX有η個內容服務器,IP1, IP2, . . . IPn,設定的域名解析分配比例為K k2 k3 ...kn(也就是設定HV IP2、IP3、... IPn的流量調度比例為 Ic1 k2 k3 . . . kn);,即在 K = (k1+k2+k3+. · · +kn)次域名解析請求中,IP1 提供 Ic1 次, IP2提供1 次,...,IPn提供kn次,采用實施例四的方法,能夠使得每次選擇內容服務器的 IP地址后,各內容服務器之間的選擇次數都能夠盡可能接近設定的比例,使得各內容服務器之間的選擇次數和設定比例之間的誤差最小。
采用線性方法從該域名對應的多個內容服務器選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例,具體為
接收域名解析請求并獲得域名;
確定本次解析請求時每個內容服務器的當前選擇比例和設定的選擇概率的誤差, 根據該誤差選擇一個該域名對應的內容服務器,每個內容服務器的當前選擇比例具體為 每個內容服務器的當前選擇次數和總選擇次數的比例;
將選擇的內容服務器返回給域名解析請求者。
其中確定本次解析請求時每個內容服務器的當前選擇比例和設定的選擇概率的誤差,根據該誤差選擇一個該域名對應的內容服務器,具體參見圖7,為實施例四提供的按照設定比例選擇內容服務器的具體方法,包括
S701、初始設定各內容服務器對應的選擇概率以及誤差;
其中,各內容服務器設定的選擇概率表示為=Cli = ki/K,各服務器的誤差(即實際輸出比例和設定的比例的誤差)表示在域名解析過程中,各服務器的選擇次數比例偏離設定的選擇概率的誤差,誤差的初始值為0 ;
其中各內容服務器的選擇概率為Cli = ki/K,K = k1+k2+k3+. . . +kn,其中 k! k2 k3 ...kn為各內容服務器對應的設定比例;
S702、根據該域名對應的各內容服務器的設定的選擇概率以及上次解析請求后各內容服務器的誤差確定本次選擇時各內容服務器的當前誤差;
本次選擇時各內容服務器的當前誤SSi(本)=Si(上)+di;
S703、將當前誤差中最大值對應的內容服務器選擇作為本次域名解析請求的內容服務器,并選擇的內容服務器的當前誤差減1。
選擇Si (本)中最大值對應的內容服務器,并返回給域名解析請求者,同時將選擇的內容服務器Wsi(本)更新為Si(本)減1。
其中,若步驟S703中確定的最大值為至少兩個時,則對應的內容服務器為至少兩個,可選擇任意一個內容服務器的IP地址均可,并在步驟S703中將選擇的內容服務器對應的誤差減1進行更新。
下面再以一個具體的例子詳細說明實施例四的方法。
步驟1、初始化 K= (1^+1 +! +...+!^),其中 Ii1 k2 k3 ...kn 為設定 ΙΡρΙΡ2、 IP3、. . . IPn的流量調度比例;
步驟2、初始化選擇每個內容服務器的IP地址對應的選擇概率為Cli = h/K ;
步驟3、初始化選擇每個內容服務器的IP地址對應的誤差Si = 0 ;
上述步驟為預先初始化過程,在每次接收到域名解析請求并選擇IP地址時,只需要執行以下過程即可
步驟4、確定每個內容服務器的IP地址對應的誤差Si = SiH ;
步驟5、接收到域名解析請求后,查找誤差Si中最大值& ;
步驟6、將最大值&對應的內容服務器的IP地址Π\作為本次選擇的內容服務器的IP地址,并返回給域名解析請求者。
步驟7 更新地址的對應的誤差&為&-1。
其中,在上述步驟4 步驟7中,若查找到的最大值為至少兩個時,則選擇任意一個最大值對應的IP地址均可,并在步驟7中將選擇的IP地址對應的誤差進行更新。
采用實施例四的方法,在每次接收到域名解析請求時,權威域名服務器均能夠盡可能按照設定的比例分配該域名對應的內容服務器,使得各內容服務器的流量調度比例一直保持設定的比例。
并且,采用線性方法,每次接收到域名解析請求,進行解析分配IP地址時,因為在每個IP地址對應的誤差中選取最大值對應的IP地址作為本次選擇的IP地址,因此,能夠保證每次選擇IP地址后,各內容服務器之間的選擇次數比例都盡可能精確接近設定的比例,不會造成流量較大的抖動。
采用本發明實施例的方法,能夠在權威域名服務器中根據設定的比例輸出各內容服務器,使得DNS具有動態調節流量的能力,使動態負載均衡成為可能,并且當設置的比例合理時,可以提高服務質量,提高帶寬利用率,提高服務器的利用率,減少服務器使用數量。
本發明實施例還提供一種基于DNS解析的流量調度裝置,如圖8所示,包括
接收模塊81,用于接收域名解析請求并獲得域名;
選擇模塊82,用于從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基板滿足設定比例;
發送模塊83,用于將選擇的內容服務器返回給域名解析請求者。
其中,選擇模塊82選擇模塊具體用于利用設置的均勻分布函數,確定本次域名解析請求的函數值;確定該函數值對應的內容服務器,將該內容服務器作為本次域名解析請求的內容服務器,其中,所述均勻分布函數的所有函數值預先按設定比例對應到各內容服務器;或者
選擇模塊82,具體用于根據各內容服務器的設定的選擇概率以及上次解析請求后各內容服務器的誤差確定各內容服務器的當前誤差,其中各內容服務器的輸出概率為Cli = VK,K = Wk3Ukn,其中Ic1 k2 k3 ...1^為各內容服務器對應的設定比例;將當前誤差中最大值對應的內容服務器選擇作為本次域名解析請求的內容服務器,并選擇的內容服務器的當前誤差減1。。
詳細的流量調度過程參見方法實施例,這里不再詳細描述。
本發明實施例還提供一種權威域名服務器,包括上述流量調度裝置的所有模塊。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種基于域名系統DNS解析的流量調度方法,其特征在于,包括接收域名解析請求并獲得域名;從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例;將選擇的內容服務器返回給域名解析請求者。
2.如權利要求1所述的方法,其特征在于,所述從該域名對應的多個內容服務器選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例,具體為利用設置的均勻分布函數,確定本次域名解析請求的函數值;確定該函數值對應的內容服務器,將該內容服務器作為本次域名解析請求的內容服務器,其中,所述均勻分布函數的所有函數值預先按設定比例對應到該多個內容服務器。
3.如權利要求2所述的方法,其特征在于,所述均勻分布函數具體包括隨機函數、散列函數。
4.如權利要求3所述的方法,其特征在于,當所述均勻分布的函數為散列函數時,利用設置的均勻分布函數,確定本次域名解析請求的函數值,具體為確定發送所述域名解析請求的源地址;利用散列函數確定該源地址對應的散列值。
5.如權利要求3所述的方法,其特征在于,當所述均勻分布的函數為散列函數時,利用設置的均勻分布函數,確定本次域名解析請求的函數值,具體為利用散列函數確定本次域名解析請求的域名對應的散列值。
6.如權利要求1所述的方法,其特征在于,所述從該域名對應的多個內容服務器選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例,具體包括根據各內容服務器的設定的選擇概率以及上次解析請求后各內容服務器的誤差確定各內容服務器的當前誤差,其中各內容服務器的設定的選擇概率為di = ki/K,K = ki+k2+k3+...+kn,其中ki k2 k3 ...kn為各內容服務器對應的設定比例;將當前誤差中最大值對應的內容服務器選擇作為本次域名解析請求的內容服務器,并將選擇的內容服務器的當前誤差減1。
7.如權利要求1至6任一所述的方法,其特征在于,所述設定比例預先根據多個內容服務器的可用流量設定,并且可以動態調整。
8.如權利要求1至6任一所述的方法,其特征在于,所述將選擇的內容服務器返回給域名解析請求者,具體為將選擇的內容服務器的IP地址返回給域名解析請求者。
9.一種基于域名系統DNS解析的流量調度裝置,其特征在于,包括接收模塊,用于接收域名解析請求并獲得域名;選擇模塊,用于從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例;發送模塊,用于將選擇的內容服務器返回給域名解析請求者。
10.如權利要求9所述的裝置,其特征在于,所述選擇模塊具體用于利用設置的均勻分布函數,確定本次域名解析請求的函數值;確定該函數值對應的內容服務器,將該內容服務器作為本次域名解析請求的內容服務器,其中,所述均勻分布函數的所有函數值預先按設定比例對應到各內容服務器;或者所述選擇模塊,具體用于根據各內容服務器的設定的選擇概率以及上次解析請求后各內容服務器的誤差確定各內容服務器的當前誤差,其中各內容服務器的輸出概率為Cli = ki/κ,κ = Wk3Ukn,其中ki k2 k3 ...1^為各內容服務器對應的設定比例;將當前誤差中最大值對應的內容服務器選擇作為本次域名解析請求的內容服務器,并將選擇的內容服務器的當前誤差減1。
11. 一種權威域名服務器,其特征在于,包括權利要求9或10所述的流量調度裝置。
全文摘要
本發明涉及互聯網通信技術領域,公開了一種基于DNS解析的流量調度方法、裝置及服務器,該方法賦予DNS動態調節流量的能力,使動態負載均衡成為可能,設置得當,可以提高服務質量;提高帶寬利用率;提高服務器的利用率,減少服務器使用數量。本發明的方法包括接收域名解析請求并獲得域名;從該域名對應的多個內容服務器中選擇一個內容服務器,使得選擇后該多個內容服務器之間的選擇次數基本滿足設定比例;將選擇的內容服務器返回給域名解析請求者。
文檔編號H04L29/06GK102523231SQ20111044504
公開日2012年6月27日 申請日期2011年12月27日 優先權日2011年12月27日
發明者李健松, 李孟, 陳奇, 黃東 申請人:北京藍汛通信技術有限責任公司