一种分布式系统的过载保护方法和服务器的制造方法_2

文档序号:9306784阅读:来源:国知局
的分布式系统的示意图;
[0051]LNMP代表在Linux系统下由Nginx+MySQL+PHP组成的网站服务器架构;
[0052]Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/P0P3/SMTP代理服务器;
[0053]Mysql是一个小型关系型数据库管理系统;
[0054]PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
[0055]如图2所示,负载均衡服务器处于系统的最前端,用于接收请求端的用户请求,并在接收到用户请求时,获取本端的系统时间,再根据该系统时间给所述用户请求加上时间戳;假设,负载均衡服务器接收到用户请求I时,获取到的本端的系统时间为tl,那么,负载均衡服务器给用户请求I加上的时间戳则为tl。需要说明的是,负载均衡服务器如何在用户请求中加上时间戳是本领域技术人员可理解的,在此不再赘述。
[0056]负载均衡服务器再将加上时间戳的用户请求根据预设的处理算法分配给相应的业务服务器(相当于一个节点),其中,所述预设的处理算法可以包括随机选取节点、循环式选取节点或者按照内存或CPU的利用率等等特定的条件进行节点的选取。应指出的是,本发明实施例中的处理算法可以包括但不仅仅局限于上述几种方式,本发明不做限定。
[0057]可理解的是,本发明实施例中的负载均衡服务器可以用软件或者硬件设备来实现,本发明不做限定。
[0058]可选的,负载均衡服务器还可以将加上时间戳的用户请求分配给其他的负载均衡服务器,当其他的负载均衡服务器接收到加上时间戳的用户请求时,可以直接将所述用户请求分配给相应的业务服务器,也就是说,其他的负载均衡服务器不需要给所述用户请求加上时间戳。
[0059]S120,所述业务服务器接收到加上所述时间戳的所述用户请求时,获取所述时间戳,并判断本地的系统时间与所述时间戳的时间间隔是否达到预设时长;若本地的系统时间与所述时间戳的时间间隔达到预设时长,则执行步骤S140 ;否则,执行步骤S130。
[0060]具体的,当业务服务器接收到加上所述时间戳的用户请求时,业务服务器则获取所述用户请求中的时间戳以及本地的系统时间,比较本地的系统时间与所述时间戳的时间间隔是否达到预设时长,若判定结果为是,说明所述用户请求为无效请求,则执行步骤S140 ;否则,说明所述用户请求为有效请求,则执行步骤S130。
[0061]其中,所述预设时长可以是一个经验值,管理员可以根据分布式系统的实际处理情况对所述预设时长进行调整。
[0062]进一步的,在分布式系统的后台,NTP(全称:Network Time Protocol)服务器可以对所述负载均衡服务器和所述业务服务器的时间进行校准,以使所述负载均衡服务器和所述业务服务器在时间上对齐,进而,提高分布式系统对无效请求的筛选精度。
[0063]应理解的是,分布式系统中的每台服务器从请求队列中取出用户请求时,都可以执行步骤S120?S130,每台服务器可以对应设置处理阈值(相当于上述提及的预设时长)O
[0064]步骤S130,所述业务服务器将所述用户请求加入请求队列中。
[0065]步骤S140,所述业务服务器将所述用户请求作为无效请求丢弃。
[0066]在图1所示的实施例中,当负载均衡服务器接收到来自请求端的用户请求时,则对所述用户请求加上时间戳,当业务服务器接收到加上时间戳的所述用户请求时,则判断本地的系统时间与所述时间戳的时间间隔是否达到预设时长,若是,说明所述用户请求为无效请求,则丢弃所述用户请求,控制了无效用户请求的蔓延,进而,提高了系统的处理效率。
[0067]请参阅图3,图3是本发明实施例提供的另一种分布式系统的请求过载的处理方法的流程示意图。如图3所示所述方法可以包括:
[0068]S310,负载均衡服务器接收到来自请求端的用户请求时,给所述用户请求加上时间戳,并将加上所述时间戳的所述用户请求转发至后端的业务服务器。
[0069]如图2所示,负载均衡服务器处于分布式系统的最前端,用于接收请求端的用户请求,并在接收到用户请求时,获取本端的系统时间,再根据该系统时间给所述用户请求加上时间戳;假设,负载均衡服务器接收到用户请求I时,获取到的本端的系统时间为tl,那么,负载均衡服务器给用户请求I加上的时间戳则为tl。需要说明的是,负载均衡服务器如何在用户请求中加上时间戳是本领域技术人员可理解的,在此不再赘述。
[0070]负载均衡服务器再将加上时间戳的用户请求根据预设的处理算法分配给相应的业务服务器(相当于一个节点),其中,所述预设的处理算法可以包括随机选取节点、循环式选取节点或者按照内存或CPU的利用率等等特定的条件进行节点的选取。应指出的是,本发明实施例中的处理算法可以包括但不仅仅局限于上述几种方式,本发明不做限定。
[0071]可理解的是,本发明实施例中的负载均衡服务器可以用软件或者硬件设备来实现,本发明不做限定。
[0072]可选的,负载均衡服务器还可以将加上时间戳的用户请求分配给其他的负载均衡服务器,当其他的负载均衡服务器接收到加上时间戳的用户请求时,可以直接将所述用户请求分配给相应的业务服务器,也就是说,其他的负载均衡服务器不需要给所述用户请求加上时间戳。
[0073]S320,所述业务服务器接收到加上所述时间戳的所述用户请求时,获取所述时间戳,并判断本地的系统时间与所述时间戳的时间间隔是否达到预设时长;若本地的系统时间与所述时间戳的时间间隔达到预设时长,则执行步骤S340 ;否则,执行步骤S330。
[0074]其中,所述预设时长可以是一个经验值,管理员可以根据分布式系统的实际处理情况对所述预设时长进行调整。
[0075]进一步的,在分布式系统的后台,NTP(全称:Network Time Protocol)服务器可以对所述负载均衡服务器和所述业务服务器的时间进行校准,以使所述负载均衡服务器和所述业务服务器在时间上对齐,进而,提高分布式系统对无效请求的筛选精度。
[0076]步骤S330,所述业务服务器将所述用户请求加入请求队列中。
[0077]步骤S340,所述业务服务器将所述用户请求作为无效请求丢弃。
[0078]步骤S350,所述业务服务器对无效请求次数加一。
[0079]所述业务服务器可以记录单位时间段内的无效请求次数,若在当前单位时间段内检测到无效请求,则对当前单位时间段内的无效请求次数加一。
[0080]需要说明的是,步骤S340与步骤S350之间并没有严格的先后执行顺便,也可以同步执行,本发明不做限定。
[0081]步骤S360,所述业务服务器检测当前单位时间段内记录的所述无效请求次数是否达到第一预设次数阈值,若当前单位时间段内记录的所述无效请求次数达到第一预设次数阈值,则执行步骤S370。
[0082]业务服务器每当对无效请求次数加一时,需要检测当前单位时间段内记录的无效请求次数是否达到第一预设次数阈值,若是,说明所述业务服务器已经超过负荷能力过多,则执行步骤S370。
[0083]其中,所述第一预设次数阈值可以是一个经验值,管理员可以根据分布式系统的实际处理情况对所述第一预设次数阈值进行调整。
[0084]步骤S370,所述业务服务器根据预设丢弃策略丢弃后续接收到的用户请求,直到检测到单位时间段内记录的无效请求次数小于所述第一预设次数阈值。
[0085]优选的,所述预设丢弃策略可以为小概率随机丢弃策略,如业务服务器每接收到五个用户请求则丢弃一个用户请求,即接收到的第六个用户请求则丢弃,直到检测到单位时间段内记录的取消请求次数小于所述第一预设次数阈值,才停止执行根据预设丢
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1