CN103634227B - 一种基于用户数量的业务流量精确调度方法及装置 - Google Patents

一种基于用户数量的业务流量精确调度方法及装置 Download PDF

Info

Publication number
CN103634227B
CN103634227B CN201210297930.9A CN201210297930A CN103634227B CN 103634227 B CN103634227 B CN 103634227B CN 201210297930 A CN201210297930 A CN 201210297930A CN 103634227 B CN103634227 B CN 103634227B
Authority
CN
China
Prior art keywords
local dns
domain name
weight
scheduling
dns
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210297930.9A
Other languages
English (en)
Other versions
CN103634227A (zh
Inventor
闵庆欢
陈颖
尹成伟
刘江涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210297930.9A priority Critical patent/CN103634227B/zh
Publication of CN103634227A publication Critical patent/CN103634227A/zh
Application granted granted Critical
Publication of CN103634227B publication Critical patent/CN103634227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种基于用户数量的业务流量精确调度方法及装置,方法包括:预先确定local DNS的权重;S1、当权威DNS接收到local DNS的域名解析请求时,根据local DNS的权重和预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将调度结果下发到local DNS;S2、根据调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[‑e,+e]之间,则结束本轮调度;否则,等待下次local DNS的域名解析请求到来,转至步骤S1。本发明能够进一步提高流量调度的精度,同时减少调度过程所需工作量和时间。

Description

一种基于用户数量的业务流量精确调度方法及装置
【技术领域】
本发明涉及互联网流量调度领域,特别涉及一种基于用户数量的业务流量精确调度方法及装置。
【背景技术】
利用CDN(内容分发网络)为某个域名提供内容分发服务时,需要对该域名下的访问流量实现全局负载均衡以及按需调度,目前一种较为前沿的实现流量调度的方法为基于IP权重补偿法的全局动态流量调度法。该方法主要包括:
1、设置该域名下各IP的目标权重;
2、权威DNS收到local DNS发送的域名解析请求后,依据IP权重补偿法,确定本次下发结果,获得各IP的权重盈亏值;
3、当各IP的权重盈亏值均收敛至0时,权威DNS向流量调度平台汇报一轮调度结束,并开始下一轮调度。
该方法在调度过程中并未考虑各local DNS所辖的用户数量不同带来的影响,而是认为每个local DNS对流量调度的影响力相同。然而,在实际情况中,不同local DNS所辖的用户数量差距较大,此时,local DNS所辖用户数量的巨大差距会导致流量调度达不到目标要求。
下面举例说明该方法存在的不足。假设该域名的CDN中有三个内容分发服务器,对应IP分别为IP1、IP2、IP3,目标权重为50%、30%、20%,根据上述方法,每次的调度结果及每次获得的盈亏值如表1所示。
表1
如表1所示,经过5次调度后盈亏值收敛归0,本轮调度结束。获得调度结束后每个IP最终流量的公式为:
T=Σ{[C(j)/count]*r}
其中,C(j)为第j个local DNS的所辖用户数量,r为下发给第j个local DNS时,表征该IP是否被选中的值,选中则r=1,否则r=0;Σ的上下限为[0,n],n为local的总个数。
假设表1中接受调度的local DNS所辖的用户数量均为100万,则IP1、IP2、IP3的最终流量分别为:
T(IP1)=[100万/2]*1+[100万/2]*1+[100万/2]*1+[100万/2]*1+[100万/2]*1=250万
T(IP2)=[100万/2]*1+[100万/2]*0+[100万/2]*1+[100万/2]*0+[100万/2]*1=150万
T(IP3)=[100万/2]*0+[100万/2]*1+[100万/2]*0+[100万/2]*1+[100万/2]*0=100万
可见,IP1、IP2、IP3的最终流量比为:250万:150万:100万=50%:30%:20%,满足预先设置的IP目标权重。
当local DNS所辖的用户数量有较大差距时,例如,将上述表1中接受5次调度的local DNS所辖的用户数量分别设为1000万、500万、100万、10万、1000万,则最终流量调度结果为:
T(IP1)=[1000万/2]*1+[500万/2]*1+[100万/2]*1+[10万/2]*1+[1000万/2]*1=1305万
T(IP2)=[1000万/2]*1+[500万/2]*0+[100万/2]*1+[10万/2]*0+[1000万/2]*1=1050万
T(IP3)=[1000万/2]*0+[100万/2]*1+[100万/2]*0+[10万/2]*1+[1000万/2]*0=255万
最终流量比为:1305万:1050万:255万=50%:38.88%:11.12%,可见,当local DNS所辖用户数量存在较大差距时,现有方法的最终的调度结果已极大的偏离了预期目标。此外,由于在实际情况中,local DNS的数量很多,而每个local DNS在向权威DNS发送解析请求时都需要进行一次调度运算,所以导致在现有方法的整个调度过程中工作量大,调度时间长,流量调度操作人员无法快速获知调度结果的反馈。
【发明内容】
有鉴于此,本发明提供了一种基于用户数量的流量精确调度方法和装置,能够进一步提高域名访问流量的调度精度,同时降低调度过程中所需的工作量,减少整个调度过程所需时间。
具体技术方案如下:
一种基于用户数量的业务流量精确调度方法,对某域名下各IP的流量进行调度,预先确定local DNS的权重,该方法包括:
S1、当权威DNS接收到local DNS的域名解析请求时,根据所述local DNS的权重、预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到local DNS;
S2、根据所述调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,转至步骤S1。
根据本发明一优选实施例,所述确定local DNS的权重,具体包括:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
根据本发明一优选实施例,所述统计local DNS所辖的用户数量,具体包括:
权威DNS统计所接收到所述local DNS的域名解析请求中的私有ID数量,将该私有ID数量作为所述local DNS所辖的用户数量;其中所述私有ID是在用户发送至所述localDNS的用户访问请求中的域名前被添加的。
根据本发明一优选实施例,所述私有ID由形成所述域名解析请求的用户的IP地址、MAC地址和随机码串接生成。
根据本发明一优选实施例,所述统计总的用户数量,具体包括:
将各个local DNS所辖的用户数量之和作为所述总的用户数量。
根据本发明一优选实施例,所述根据所述调度结果获得该域名下各IP的权重盈亏值,具体包括:
本次获得的权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次获得的权重盈亏值;
其中,
当首次调度时,上次获得的权重盈亏值取0;
count为本次调度下发的IP数量;
r为表征本次调度当前IP是否被选中的值;
Wj为所述local DNS的权重。
根据本发明一优选实施例,在所述步骤S1之前,还包括:
判断向权威DNS发送域名解析请求的local DNS是否具有影响力,若该local DNS具有影响力,则继续执行步骤S1;
S0、若该local DNS不具有影响力,则将上一次的调度结果下发到该local DNS,之后等待下一次local DNS的域名解析请求到来时,转至执行S0。
根据本发明一优选实施例,所述判断向权威DNS发送域名解析请求的local DNS是否具有影响力,具体包括:
依据所辖的用户数量从高至低将local DNS进行排序,将位于前20%的local DNS判断为具有影响力的local DNS,将剩下的local DNS判断为不具有影响力的local DNS。
根据本发明一优选实施例,在所述结束本轮调度之后,还包括:
重新设定该域名下各IP的目标权重,开始新一轮调度,等待local DNS的域名解析请求到来,转至步骤S1。
一种基于用户数量的业务流量精确调度装置,对某域名下各IP的流量进行调度,该装置包括:
预处理模块,用于预先确定local DNS的权重,
下发模块,用于当权威DNS接收到local DNS的域名解析请求时,根据所述localDNS的权重、预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到local DNS;
运算处理模块,用于根据所述调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,触发下发模块。
根据本发明一优选实施例,所述预处理模块确定local DNS的权重,具体执行:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
根据本发明一优选实施例,所述预处理模块统计local DNS所辖的用户数量,具体执行:
权威DNS统计所接收到所述local DNS的域名解析请求中的私有ID数量,将该私有ID数量作为所述local DNS所辖的用户数量;其中所述私有ID是在用户发送至所述localDNS的用户访问请求中的域名前被添加的。
根据本发明一优选实施例,所述私有ID由形成所述域名解析请求的用户的IP地址、MAC地址和随机码串接生成。
根据本发明一优选实施例,所述预处理模块统计总的用户数量,具体执行:
将各个local DNS所辖的用户数量之和作为所述总的用户数量。
根据本发明一优选实施例,所述运算处理模块根据所述调度结果获得该域名下各IP的权重盈亏值,具体执行:
本次获得的权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次获得的权重盈亏值;
其中,
当首次调度时,上次获得的权重盈亏值取0;
count为本次调度下发的IP数量;
r为表征本次调度当前IP是否被选中的值;
Wj为所述local DNS的权重。
根据本发明一优选实施例,该装置还包括:
判断模块,用于判断向权威DNS发送域名解析请求的local DNS是否具有影响力,若该local DNS具有影响力,则触发下发模块;
若该local DNS不具有影响力,则将上一次的调度结果下发到该local DNS,之后等待下一次local DNS的域名解析请求到来时,执行所述判断的操作。
根据本发明一优选实施例,所述判断模块判断向权威DNS发送域名解析请求的local DNS是否具有影响力时,具体执行:
依据所辖的用户数量从高至低将local DNS进行排序,将位于前20%的local DNS判断为具有影响力的local DNS,将剩下的local DNS判断为不具有影响力的local DNS。
根据本发明一优选实施例,该装置还包括:
重置模块,用于在所述本轮调度结束之后,重新设定该域名下各IP的目标权重,开始新一轮调度,等待local DNS的域名解析请求到来,触发下发模块。
由以上技术方案可以看出,本发明通过确定local DNS的权重和设置偏差容忍度e,在现有技术的IP权重补偿法的基础上,把local DNS的权重加入到相应的调度处理流程中,使得流量调度的结果更加精确,收敛的速度也更快。同时,通过只对具有影响力的localDNS进行调度后的IP权重盈亏值的调度处理,减少了调度过程中所需的工作量。
【附图说明】
图1为本发明实施例一提供的基于用户数量的业务流量精确调度方法流程图;
图2为本发明实施例一提供的为local DNS的流量进行调度的流程图;
图3为本发明实施例二提供的基于用户数量的业务流量精确调度装置示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例一、
图1为本发明实施例一提供的一种基于用户数量的业务流量精确调度方法,对某域名下各IP的流量进行调度,如图1所示,该方法包括:
步骤S 101、预先确定local DNS的权重。
在本步骤中可以依据local DNS所辖的用户数量来确定local DNS的权重,可以但不限于使用下述方法:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
统计local DNS所辖的用户数量时,可以但不限于使用下述方法:
用户访问请求中的域名前被添加了标识用户信息的私有ID,构成了子域名;
权威DNS接收local DNS的所述子域名的解析请求后,解析出所述私有ID,并将该私有ID作为记录保存;
将保存的记录数量作为所述local DNS所辖的用户数量。
预先在指向目标域名的链接中嵌入代码,当用户点击这样的链接访问目标域名时,代码会运行并修改用户的访问请求,在访问请求中的域名前添加私有ID,该私有ID可以由用户的IP地址、MAC地址和一个n位随机码串接生成。如用户实际访问的域名为“example.com”,则修改后用户访问请求中的域名为“私有ID.example.com”。由于添加了私有ID,local DNS无法对这个域名进行解析,此时local DNS便会向权威DNS发送解析请求。在接收到该解析请求之后,权威DNS以该local DNS的IP为名建立文件,之后提取出私有ID,并解析得到其中的用户IP地址、MAC地址和n位随机码,并把IP地址和MAC地址作为一条记录存入到上述建立的文件中。在将IP地址和MAC地址作为记录保存时需要先进行对比,如果已保存的记录中有这个IP地址和MAC地址,则不存入该记录;否则,存入该记录。这样,通过统计一个文件中所保存的记录数量就能得知对应local DNS所辖的用户数量。
私有ID不限于由用户的IP地址、MAC地址和一个n位随机码串接生成,也可以只由用户MAC地址或n位随机码构成,只要保证添加私有ID后localDNS无法解析出域名和权威DNS能够解析私有ID进行数量统计即可。
需要说明的是,上述统计local DNS所辖用户数量的方法是利用了统计学中的抽样统计原理,统计的只是一个抽样周期内(如1天),通过点击其他域名网页中目标域名的链接来访问该目标域名的用户数量,而不并是真正意义上local DNS所辖的某域名的真实访问用户数量。抽样统计的结果能够准确反映该域名下各个local DNS所辖用户数量的比例,从而能够进一步确定各个local DNS的权重。
将统计得到的各个local DNS所辖的用户数量相加,得到总的用户数量,将localDNS所辖的用户数量与总的用户数量的比作为该local DNS的权重。例如,有四个localDNS,所辖用户数量分别为1000万、500万、100万、10万,则总的用户数量为1610万,则这四个local DNS的权重分别为1000万/1610万=62%、500万/1610万=31%、100万/1610万=6%、10万/1610万=1%,其中以上结果为四舍五入取整后的结果。
步骤S102、当权威DNS接收到local DNS的域名解析请求时,根据所述local DNS的权重、预先设定的目标域名下各IP目标权重以及上一次获得的目标域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到local DNS。
当权威DNS在一轮调度中首次收到local DNS的域名解析请求时,根据IP目标权重将各IP排序,之后选中目标权重最高的前count个IP,将该count个IP下发给local DNS。
其中,count为本次调度需要下发的IP数量,其值的确定方法为:100%除以IP目标权重中的最大权重值,并向上取整,例如该域名对应三个IP,分别为IP1、IP2、IP3,对应目标权重分别为60%、30%、10%,则count=100%/60%=2。
之后当权威DNS再收到local DNS的域名解析请求时,选中权重亏欠值最大,即权重盈亏值最低的count个IP,并将该count个IP下发给local DNS,其中亏欠值是指权重亏损的值,例如某个IP在一次调度后权重盈亏值为-10%,则其权重亏损了10%,其权重亏欠值就为10%。如果出现多于count的IP权重亏欠值相同的情况,则选中其中目标权重较高的count的IP。
需要说明的是,若在某次调度中,目标权重最高的IP的权重亏欠值与该IP目标权重之和为100%,则本次调度该IP被选中,其余IP不被选中,此时count值为1。
步骤S 103、根据所述调度结果获得目标域名下各IP的权重盈亏值,若目标域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,转至步骤S102。
在每次将调度结果下发之后,获得本次调度各IP的权重盈亏值,运算公式如下:
本次权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次权重盈亏值
其中,
Wj为在本次调度中发送域名解析请求的local DNS的权重;
当首次调度时,上次权重盈亏值取0;
r为表征该IP是否被选中的值,若本次调度该IP被选中,则r取值1;否则,r取值0;
根据流量调度需要,预先设置一个容忍偏差度e,当各IP权重的盈亏值收敛在[-e,+e]之间时(不包括[-e,+e]),则结束本轮调度;否则,等待权威DNS收到local DNS的域名解析请求,并继续进行调度。
下面举个例子进一步对上述步骤进行说明。
假设该域名下有三个IP,分别为IP1、IP2、IP3,对应目标权重分别为50%,30%,20%。假设有四个local DNS,分别为local DNS1、local DNS2、local DNS3、local DNS4,所辖用户数量分别为1000万、500万、100万、10万,根据步骤S101所述方法,四个local DNS对应权重分别为62%、31%、6%、1%。容忍偏差度e设置为1%,四个local DNS依次向权威DNS发送域名解析请求,每次调度结果及权重盈亏值如表2所示
表2
具体过程为:local DNS1首先向权威DNS发送域名解析请求,此时是权威DNS首次收到请求。选择目标权重最高的count个IP,其中count值为100%除以最大目标权重值,则count=100%/50%=2,选中IP1和IP2,并将IP1和IP2下发给local DNS1。
获得本次调度后各IP的权重盈亏值:
IP1盈亏值=[(100%/2)*1-50%]*62%+0=0%;
IP2盈亏值=[(100%/2)*1-30%]*62%+0=12%;
IP3盈亏值=[(100%/2)*0-20%]*62%+0=-12%;
其中,本次调度选中的为IP1和IP2,所以IP1和IP2的r值取1,IP3的r值去0,62%为local DNS1的权重,由于本次调度为首次调度,所以上次权重盈亏值取0。
第2次调度为权威DNS接收到local DNS2的域名解析请求后,选中权重亏欠值高的count个IP。首次调度后,IP1、IP2、IP3对应的权重亏欠值分别为0%、12%、-12%,所以本次调度选中IP1和IP3。
获得第2次调度后各IP的权重盈亏值:
IP1盈亏值=[(100%/2)*1-50%]*31%+0=0%;
IP2盈亏值=[(100%/2)*0-30%]*31%+12%=3%;
IP3盈亏值=[(100%/2)*1-20%]*31%-12%=-3%;
第3次调度下发给local DNS3的结果为IP1和IP3,第4次调度下发给local DNS4的结果为IP1和IP3。其中,第4次调度之后,各IP的权重盈亏值分别为0%、+0.7%、-0.7%,均在[-e,+e]之间,所以第4次调度之后本轮调度结束。
本轮调度结束后,各IP的最终流量为:
T(IP1)=[1000万/2]*1+[500万/2]*1+[100万/2]*1+[10万/2]*1=805万
T(IP2)=[1000万/2]*1+[500万/2]*0+[100万/2]*0+[10万/2]*0=500万
T(IP2)=[1000万/2]*0+[500万/2]*1+[100万/2]*1+[10万/2]*1=305万
最终各IP的流量比为805万:500万:305万=50%:31%:19%,基本符合预先设置的各IP目标权重。
下面用图2进一步说明权威DNS在接收到local DNS的域名解析请求后的调度过程,图2为本发明实施例一提供的为local DNS的流量进行调度的流程图,如图2所示:
在接收到local DNS的域名解析请求之后,首先执行步骤S201:判断收到的localDNS的域名解析请求是否为本轮调度中首次收到的local DNS请求,若是,则执行步骤S202;否则,执行步骤S203。
步骤S202:把目标权重最高的前count个IP下发给local DNS。
步骤S203:把权重亏欠值最高的前count个IP下发给local DNS。
步骤S202和步骤S203的具体执行方法即为步骤S 102中所述方法。
在将调度结果下发给local DNS之后,需获得各IP的权重盈亏值,即执行步骤S204:获得各IP的权重盈亏值,并判断各IP的权重盈亏值是否收敛在[-e,+e]之间,若是,则执行步骤S205,结束本轮调度;否则,执行步骤S206,等待下一次local DNS请求的到来。各IP的权重盈亏值的获得方法即为步骤S103中所述获得方法。
local DNS在接收到权威DNS下发的结果后,会将该结果缓存一段时间,若在该缓存时间内有用户访问该域名,则local DNS可以根据缓存数据直接解析出IP地址返回给用户,超过该缓存时间后,local DNS会清除之前缓存的数据,此时有用户访问该域名时,local DNS就会向权威DNS请求域名解析。因此,在持续有访问流量的情况下,所有的localDNS每隔一段时间(缓存时间)就会向权威DNS发送域名解析请求,此时权威DNS便能通过上述本发明实施例一提供的方法对local DNS下的流量进行调度。
在本发明实施例一所提供的方法中,在权威DNS接收到local DNS的域名解析请求开始进行调度前还可以加入一个步骤:判断该local DNS是否具有影响力。若该local DNS是具有影响力的local DNS,则根据步骤S 102至步骤S103所述方法确定调度结果并下发至该local DNS,获得各IP的权重盈亏值;若该local DNS是不具有影响力的local DNS,则直接向其下发最近一次的调度结果,并且不获得本次下发后各IP的权重盈亏值。
其中判断local DNS是否具有影响力可以依据local DNS所辖的用户数量来进行选取,即选取所辖用户数量排在前N个的local DNS作为具有影响力的local DNS。优选地,可以根据2/8原则进行判断,将local DNS所辖的用户数量从高至低进行排序,将前20%的local DNS,即所辖用户数量较多的20%的local DNS判断为具有影响力的local DNS,将其余的local DNS判断为不具有影响力的local DNS。
在本发明实施例一所提供的方法中,在步骤S103中结束本轮调度后还可以增加一个步骤:重新设定各IP目标权重,开始下一轮调度,等待local DNS的解析请求到来,转至步骤S102。一轮调度结束后,将流量调度结果反馈至流量调度平台,操作人员根据反馈结果以及调度需要,可以设置新的各IP目标权重,或者继续选择上一轮的各IP目标权重,然后根据本发明实施例一所提供方法中步骤S102至步骤S103中所述的方法开始新一轮调度。
实施例二、
图3为本发明实施例二提供的基于用户数量的业务流量精确调度方装置示意图,如图3所示,该装置包括:预处理模块10、下发模块20、运算处理模块30,还可以包括:判断模块40、重置模块50。
预处理模块10,用于预先确定local DNS的权重。
预处理模块10可以依据local DNS所辖的用户数量来确定local DNS的权重,可以但不限于使用下述方法:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
统计local DNS所辖的用户数量时,可以但不限于使用下述方法:
在用户访问请求中的域名前添加标识用户信息的私有ID,构成子域名;
权威DNS接收local DNS的所述子域名的解析请求后,解析出所述私有ID,并将该私有ID作为记录保存;
将保存的记录数量作为所述local DNS所辖的用户数量。
预先在指向目标域名的链接中嵌入代码,当用户点击这样的链接访问目标域名时,代码会运行并修改用户的访问请求,在访问请求中的域名前添加私有ID,该私有ID可以由用户的IP地址、MAC地址和一个n位随机码串接生成。如用户实际访问的域名为“example.com”,则修改后用户访问请求中的域名为“私有ID.example.com”。由于添加了私有ID,local DNS无法对这个域名进行解析,此时local DNS便会向权威DNS发送解析请求。在接收到该解析请求之后,权威DNS以该local DNS的IP为名建立文件,之后提取出私有ID,并解析得到其中的用户IP地址、MAC地址和n位随机码,并把IP地址和MAC地址作为一条记录存入到上述建立的文件中。在将IP地址和MAC地址作为记录保存时需要先进行对比,如果已保存的记录中有这个IP地址和MAC地址,则不存入该记录;否则,存入该记录。这样,通过统计一个文件中所保存的记录数量就能得知对应local DNS所辖的用户数量。
私有ID不限于由用户的IP地址、MAC地址和一个n位随机码串接生成,也可以只由用户MAC地址或n位随机码构成,只要保证添加私有ID后local DNS无法解析出域名和权威DNS能够解析私有ID进行数量统计即可。
将统计得到的各个local DNS所辖的用户数量相加,得到总的用户数量,将localDNS所辖的用户数量与总的用户数量的比作为该local DNS的权重。例如,有四个localDNS,所辖用户数量分别为1000万、500万、100万、10万,则总的用户数量为1610万,则这四个local DNS的权重分别为1000万/1610万=62%、500万/1610万=31%、100万/1610万=6%、10万/1610万=1%,其中以上结果为四舍五入取整后的结果。
下发模块20,用于当权威DNS接收到local DNS的域名解析请求时,根据所述localDNS的权重、预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到localDNS。
当权威DNS在一轮调度中首次收到local DNS的域名解析请求时,根据IP目标权重将各IP排序,之后选中目标权重最高的前count个IP,将该count个IP下发给local DNS。
其中,count为本次调度需要下发的IP数量,其值的确定方法为:100%除以IP目标权重中的最大权重值,并向上取整,例如该域名对应三个IP,分别为IP1、IP2、IP3,对应目标权重分别为60%、30%、10%,则count=100%/60%=2。
之后当权威DNS再收到local DNS的域名解析请求时,选中权重亏欠值最大,即权重盈亏值最低的count个IP,并将该count个IP下发给local DNS,其中亏欠值是指权重亏损的值,例如某个IP在一次调度后权重盈亏值为-10%,则其权重亏损了10%,其权重亏欠值就为10%。如果出现多于count的IP权重亏欠值相同的情况,则选中其中目标权重较高的count的IP。
需要说明的是,若在某次调度中,目标权重最高的IP的权重亏欠值与该IP目标权重之和为100%,则本次调度该IP被选中,其余IP不被选中,此时count值为1。
运算处理模块30,用于根据所述调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,触发下发模块20。
在每次将调度结果下发之后,获得本次调度各IP的权重盈亏值,运算公式如下:
本次权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次权重盈亏值
其中,
Wj为在本次调度中发送域名解析请求的local DNS的权重;
当首次调度时,上次权重盈亏值取0;
r为表征该IP是否被选中的值,若本次调度该IP被选中,则r取值1;否则,r取值0;
根据流量调度需要,预先设置一个容忍偏差度e,当各IP权重的盈亏值收敛在[-e,+e]之间时(不包括[-e,+e]),则结束本轮调度;否则,等待权威DNS收到local DNS的域名解析请求,并继续进行调度。
本发明实施例二提供的装置还可以包括:判断模块40,用于判断向权威DNS发送域名解析请求的local DNS是否具有影响力,若该local DNS具有影响力,则触发下发模块20;若该local DNS不具有影响力,则将最近一次的调度结果下发到该local DNS,之后等待下一次local DNS的域名解析请求到来时再次用该模块进行判断。其中判断local DNS是否具有影响力可以依据local DNS所辖的用户数量来进行选取,即选取所辖用户数量排在前N个的local DNS作为具有影响力的local DNS。优选地,可以根据2/8原则进行判断,将localDNS所辖的用户数量从高至低进行排序,将前20%的local DNS,即所辖用户数量较多的20%的local DNS判断为具有影响力的local DNS,将其余的local DNS判断为不具有影响力的local DNS。
本发明实施例二提供的装置还可以包括:重置模块50,用于在所述本轮调度结束之后,重新设定该域名下各IP的目标权重,开始新一轮调度,等待local DNS的域名解析请求到来,触发下发模块20。一轮调度结束后,将流量调度结果反馈至流量调度平台,操作人员根据反馈结果以及调度需要,可以设置新的各IP目标权重,或者继续选择上一轮的各IP目标权重,然后根据本发明实施例二所提供装置中的下发模块20和运算处理模块30所执行的程序开始新一轮调度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

1.一种基于用户数量的业务流量精确调度方法,对某域名下各IP的流量进行调度,其特征在于,预先确定local DNS的权重,该方法包括:
S1、当权威DNS接收到local DNS的域名解析请求时,根据所述local DNS的权重、预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到local DNS;
S2、根据所述调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,转至步骤S1;
其中,根据所述调度结果获得该域名下各IP的权重盈亏值包括:
本次获得的权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次获得的权重盈亏值;
其中,当首次调度时,上次获得的权重盈亏值取0;
count为本次调度下发的IP数量;
r为表征本次调度当前IP是否被选中的值;
Wj为所述local DNS的权重。
2.根据权利要求1所述的方法,其特征在于,所述确定local DNS的权重,具体包括:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
3.根据权利要求2所述的方法,其特征在于,所述统计local DNS所辖的用户数量,具体包括:
权威DNS统计所接收到所述local DNS的域名解析请求中的私有ID数量,将该私有ID数量作为所述local DNS所辖的用户数量;其中所述私有ID是在用户发送至所述local DNS的用户访问请求中的域名前被添加的。
4.根据权利要求3所述的方法,其特征在于,所述私有ID由形成所述域名解析请求的用户的IP地址、MAC地址和随机码串接生成。
5.根据权利要求2所述的方法,其特征在于,所述统计总的用户数量,具体包括:
将各个local DNS所辖的用户数量之和作为所述总的用户数量。
6.根据权利要求1所述的方法,其特征在于,在所述步骤S1之前,还包括:
S0、判断向权威DNS发送域名解析请求的local DNS是否具有影响力,若该local DNS具有影响力,则继续执行步骤S1;
若该local DNS不具有影响力,则将上一次的调度结果下发到该local DNS,之后等待下一次local DNS的域名解析请求到来时,转至执行S0。
7.根据权利要求6所述的方法,其特征在于,所述判断向权威DNS发送域名解析请求的local DNS是否具有影响力,具体包括:
依据所辖的用户数量从高至低将local DNS进行排序,将位于前20%的local DNS判断为具有影响力的local DNS,将剩下的local DNS判断为不具有影响力的local DNS。
8.根据权利要求1所述的方法,其特征在于,在所述结束本轮调度之后,还包括:
重新设定该域名下各IP的目标权重,开始新一轮调度,等待local DNS的域名解析请求到来,转至步骤S1。
9.一种基于用户数量的业务流量精确调度装置,对某域名下各IP的流量进行调度,其特征在于,该装置包括:
预处理模块,用于预先确定local DNS的权重;
下发模块,用于当权威DNS接收到local DNS的域名解析请求时,根据所述local DNS的权重、预先设定的该域名下各IP的目标权重以及上一次获得的该域名下各IP的权重盈亏值确定本次调度结果,将所述调度结果下发到local DNS;
运算处理模块,用于根据所述调度结果获得该域名下各IP的权重盈亏值,若该域名下各IP的权重盈亏值收敛至[-e,+e]之间,则结束本轮调度,其中,e为预先设置的偏差容忍度;否则,等待下次local DNS的域名解析请求到来,触发下发模块;
其中,根据所述调度结果获得该域名下各IP的权重盈亏值包括:
本次获得的权重盈亏值=[(100%/count)*r-目标权重]*Wj+上次获得的权重盈亏值;
其中,当首次调度时,上次获得的权重盈亏值取0;
count为本次调度下发的IP数量;
r为表征本次调度当前IP是否被选中的值;
Wj为所述local DNS的权重。
10.根据权利要求9所述的装置,其特征在于,所述预处理模块确定local DNS的权重,具体执行:
统计local DNS所辖的用户数量;
统计总的用户数量;
将所述local DNS所辖的用户数量与所述总的用户数量的比作为local DNS的权重。
11.根据权利要求10所述的装置,其特征在于,所述预处理模块在统计local DNS所辖的用户数量时,具体执行:
统计权威DNS所接收到所述local DNS的域名解析请求中的私有ID数量,将该私有ID数量作为所述local DNS所辖的用户数量;其中所述私有ID是在用户发送至所述local DNS的用户访问请求中的域名前被添加的。
12.根据权利要求11所述的装置,其特征在于,所述私有ID由形成所述域名解析请求的用户的IP地址、MAC地址和随机码串接生成。
13.根据权利要求12所述的装置,其特征在于,所述预处理模块在统计总的用户数量时,具体执行:
将各个local DNS所辖的用户数量之和作为所述总的用户数量。
14.根据权利要求9所述的装置,其特征在于,该装置还包括:
判断模块,用于判断向权威DNS发送域名解析请求的local DNS是否具有影响力,若该local DNS具有影响力,则触发下发模块;
若该local DNS不具有影响力,则将上一次的调度结果下发到该local DNS,之后等待下一次local DNS的域名解析请求到来时,执行所述判断的操作。
15.根据权利要求14所述的装置,其特征在于,所述判断模块在判断向权威DNS发送域名解析请求的local DNS是否具有影响力时,具体执行:
依据所辖的用户数量从高至低将local DNS进行排序,将位于前20%的local DNS判断为具有影响力的local DNS,将剩下的local DNS判断为不具有影响力的local DNS。
16.根据权利要求9所述的装置,其特征在于,该装置还包括:
重置模块,用于在所述本轮调度结束之后,重新设定该域名下各IP的目标权重,开始新一轮调度,等待local DNS的域名解析请求到来,触发下发模块。
CN201210297930.9A 2012-08-20 2012-08-20 一种基于用户数量的业务流量精确调度方法及装置 Active CN103634227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210297930.9A CN103634227B (zh) 2012-08-20 2012-08-20 一种基于用户数量的业务流量精确调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210297930.9A CN103634227B (zh) 2012-08-20 2012-08-20 一种基于用户数量的业务流量精确调度方法及装置

Publications (2)

Publication Number Publication Date
CN103634227A CN103634227A (zh) 2014-03-12
CN103634227B true CN103634227B (zh) 2018-05-01

Family

ID=50214867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210297930.9A Active CN103634227B (zh) 2012-08-20 2012-08-20 一种基于用户数量的业务流量精确调度方法及装置

Country Status (1)

Country Link
CN (1) CN103634227B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104954401B (zh) * 2014-03-27 2018-06-08 阿里巴巴集团控股有限公司 流量调度方法和装置
CN105323290B (zh) * 2014-08-04 2019-02-26 中国移动通信集团公司 一种基于用户流量分布特征的内容调度方法和装置
FR3032851A1 (fr) * 2015-02-13 2016-08-19 Kerlink Procede de resolution d'une adresse ip, serveur et programme d'ordinateur correspondants.
CN105357328B (zh) * 2015-09-28 2018-10-02 互联网域名系统北京市工程研究中心有限公司 域名解析方法、dns递归服务器及域名解析系统
CN109246685B (zh) * 2018-11-29 2021-08-17 锐捷网络股份有限公司 基于mac地址的客流量统计方法、设备及存储介质
CN111917898B (zh) * 2020-07-24 2021-08-27 网宿科技股份有限公司 一种资源调度策略的调整方法及装置
CN112968966B (zh) * 2021-02-26 2023-05-02 北京百度网讯科技有限公司 调度方法、装置、电子设备及存储介质
CN115442330B (zh) * 2022-08-05 2023-08-08 天翼云科技有限公司 一种域名解析系统、方法及设备
CN115834535A (zh) * 2022-10-17 2023-03-21 北京奇艺世纪科技有限公司 一种域名解析方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281611A (zh) * 2011-07-28 2011-12-14 中国电信股份有限公司 无线局域网接入控制方法及系统
CN102355422A (zh) * 2011-10-17 2012-02-15 苏州迈科网络安全技术股份有限公司 多核并行无锁的qos流量控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8339954B2 (en) * 2008-05-16 2012-12-25 Cisco Technology, Inc. Providing trigger based traffic management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102281611A (zh) * 2011-07-28 2011-12-14 中国电信股份有限公司 无线局域网接入控制方法及系统
CN102355422A (zh) * 2011-10-17 2012-02-15 苏州迈科网络安全技术股份有限公司 多核并行无锁的qos流量控制方法

Also Published As

Publication number Publication date
CN103634227A (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
CN103634227B (zh) 一种基于用户数量的业务流量精确调度方法及装置
US8489724B2 (en) CNAME-based round-trip time measurement in a content delivery network
US9407570B2 (en) Method, apparatus, and system for allocating CDN volume
AU2010234484B2 (en) Domain traffic ranking
US8510448B2 (en) Service provider registration by a content broker
US7062572B1 (en) Method and system to determine the geographic location of a network user
AU2011307319B2 (en) Request routing in a networked environment
CN104092791B (zh) 一种综合质量与成本的互联网内容资源调度方法和系统
CN104954401B (zh) 流量调度方法和装置
US20100106854A1 (en) System and method for controlling non-existing domain traffic
CN107196968B (zh) 一种爬虫识别方法
CN108076142A (zh) 一种基于cdn技术加速用户请求的方法及系统
US8224923B2 (en) Characterizing unregistered domain names
JP2016517064A5 (zh)
CN113497817A (zh) 流量调度方法、装置、cdn网络的边缘节点及服务器
JP2008090826A5 (zh)
US20160277259A1 (en) Traffic quality analysis method and apparatus
CN102055815B (zh) 获取访客本地域名解析服务器的系统
CN105516389B (zh) 域名与ip映射关系的修改方法和装置
JP3922693B2 (ja) インターネット情報検索システム
CN105610995A (zh) Dns服务器的选择方法、dns服务器的选择装置和终端
CN112954089A (zh) 一种解析数据的方法、装置、设备以及存储介质
CN112598348A (zh) 目标地址的位置校准方法、服务器、客户端及计算设备
CN104702617A (zh) 一种基于内容分发网络的数据分发方法及装置
CN102081624B (zh) 一种数据查询的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant