一种用于网络拥堵的限速方法、装置及网关服务器与流程

文档序号:16686182发布日期:2019-01-22 18:20阅读:333来源:国知局
一种用于网络拥堵的限速方法、装置及网关服务器与流程

本发明涉及一种网络限速方法,尤其涉及一种用于网络拥堵的限速方法、装置及网关服务器。



背景技术:

随着互联网技术的飞速发展,在网络通信过程中对访问速度和用户体验都有很高的要求。企业在面对有限网络带宽资源的情况下,多个应用系统并行运行,共享同一个网络带宽,当存在处理高并发的大数据传输过程中(如:文件上传、下载,客户端升级等),很容易出现数据传输卡顿不稳定或长时间等待的现象,造成网络拥堵而影响企业整个网络中其他系统的运作。为了避免因为流量过大而导致网络拥堵,甚至网络瘫痪的问题。

在现有技术中,解决网络拥堵的技术方案为设置流量阈值,并在单位时间内,当请求数达到阈值时,则将其丢弃,从而达到限速目的,并避免出现网络拥堵的现象。然而,现有技术中存在如下缺点:

(1)当多客户端高并发的请求处理大数据传输时,很难精确的设置阈值大小,倘若设置不当,仍然会出现网络拥堵,甚至网络瘫痪,导致企业整个网络中其他系统也无法正常访问。

(2)传输速度极不稳定,忽高忽低。

因此,本专利通过在所有应用系统前添加网关系统,在网关层面进行限速拦截,从而提出了一种基于网络流量过大而造成网络拥堵的网关限速方案,确保在完成正常数据传输任务下而不影响整个企业网络的正常运转。



技术实现要素:

基于此,本发明提出了一种基于网络流量过大而造成网络拥堵的网关限速方案,确保在完成正常数据传输任务下而不影响整个企业网络的正常运转。

根据本发明的目的,本申请的第一方面提供一种用于网络拥堵的限速方法,所述方法包括,

拦截多个客户端的访问请求,

根据所述访问请求设置限速条件,

根据所述限速条件对所述访问请求进行处理。

进一步的,所述拦截多个客户端的访问请求之后,根据不同的所述访问请求设置限速条件之前,还包括判断所述访问请求是否合法,如果不合法则拒绝访问请求。

进一步的,若所述访问请求为合法的访问,则继续判断所述是否需要对所述访问请求中的消息进行限速,如果需要则根据不同的所述访问请求设置限速条件,否则直接调用后端服务完成请求处理。

进一步的,所述根据所述访问请求设置限速条件,包括,获取所述访问请求的至少一种消息类型,根据所述消息类型确定与之对应的最高访问量,当访问该类型消息的请求数量大于最高访问量时,返回给客户端提示信息,否则,将该消息类型对应的客户端请求根据不同优先级放入到不同的访问队列中。

进一步的,所述根据所述限速条件对所述访问请求进行处理,包括,从当前执行的访问队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1。

进一步的,每隔一固定时间周期处理当前执行队列中的一个待执行的任务。

进一步的预先设置最高访问量的1%作为高优先级预留通道,只有高优先级的请求可以占用,所述高优先级的级别高于所述访问队列的优先级级别,如果无高优先级请求,则不使用该预留通道。

本申请第二方面提供了一种用于网络拥堵的限速装置,所述装置包括:

拦截模块,用于拦截多个客户端的访问请求,

设置模块,用于根据所述访问请求设置限速条件,

处理模块,用于根据所述限速条件对所述访问请求进行处理。

进一步的,所述装置包括:判断模块,用于在所述拦截多个客户端的访问请求之后,根据不同的所述访问请求设置限速条件之前,判断所述访问请求是否合法,如果不合法则拒绝访问请求。

进一步的,所述判断模块还用于,若所述访问请求为合法的访问,则继续判断所述是否需要对所述访问请求的消息进行限速,如果需要则根据不同的所述访问请求设置限速条件,否则直接调用后端服务完成请求处理。

进一步的,所述设置模块,用于获取所述访问请求的至少一种消息类型,根据所述消息类型确定与之对应的最高访问量,当访问该类型消息的请求数量大于最高访问量时,返回给客户端提示信息,否则,将该消息类型对应的客户端请求根据不同优先级放入到不同的访问队列中。

进一步的,所述处理模块,用于从当前执行的访问队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1。

进一步的,所述装置还包括执行模块,用于每隔一固定时间周期处理当前执行队列中的一个待执行的任务。

进一步的,所述装置还包括预留通道模块,预先设置最高访问量的一部分作为高优先级预留通道,只有高优先级的请求可以占用,所述高优先级的级别高于所述访问队列的优先级别,如果无高优先级请求,则不使用该预留通道。

本申请第三方面提供了一种网关服务器,包括:存储器、收发器和至少一个处理器,所述存储器中存储有指令,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个处理器调用所述指令,执行上述第一方面任一所述的方法。

本发明的有益效果:

(1)避免在网络高峰时间段,各系统间网络拥堵相互干扰,严重时造成整个网络瘫痪。

(2)限速更加稳定,不会出现忽高忽低的大幅度波动。

附图说明

图1:本发明方法的流程图;

图2:本发明的总体方案流程图;

图3:本发明的限速控制流程图;

图4:本发明的装置结构图;

图5:本发明的解决网络拥堵方案一实施例图;

具体实施方式

下面结合附图对本申请作进一步详细描述,有必要在此指出的是,以下具体实施方式只用于对本申请进行进一步的说明,不能理解为对本申请保护范围的限制,该领域的技术人员可以根据上述申请内容对本申请作出一些非本质的改进和调整。

实施例1.

结合图1、2、3,本发明的一种用于网络拥堵的限速方法,包括如下步骤:

步骤一、拦截多个客户端的访问请求。

在本步骤中,当有多个客户端发送访问请求时,会产生网络拥堵状况,因此,本发明的目的也是为了解决该拥堵造成的访问异常问题,当有多个客户端向目的服务器端发送访问请求时,首先拦截这些访问请求,并判断这些访问请求是否属于合法的访问请求,只有在合法的情况下,才允许继续进行访问,其次,对于合法的访问请求进行限速的判断,即判断该访问请求的消息是否属于限速的范围,如果属于,则进入下一步骤,如果不属于,则直接调用后端服务完成该客户端发送的请求的处理。

在本发明中,后端服务包括诸如文件服务器、核心服务器、理财服务器以及oa服务器等等,还包括其他设置在后端的服务器,调用后端服务也就是将客户端发送的请求消息经过处理后转发至这些对应的服务器中进行访问交互。

步骤二、根据所述访问请求设置限速条件。

由上一步可知,对于合法的访问请求消息进行限速的判断,如果属于需要限速的范围,则需要根据访问请求设置限速条件。

在本步骤中,主要是限速条件的设置,具体为,获取所述访问请求的至少一种消息类型,根据所述消息类型确定与之对应的最高访问量,当访问该类型消息的请求数量大于最高访问量时,返回给客户端提示信息,否则,将该消息类型对应的客户端请求根据一不同先级放入到不同的访问队列中。

为了确保在网络高峰时间段内,不同业务系统或业务操作都能够快速的完成业务处理,可在应用系统安装部署完后,让网络系统管理员设置不同系统的不同业务种类在不同时间段内使用的最大可占用带宽数及对应传输数据分片最大尺寸,进行自动计算每秒最高访问量(最高上传下载访问量)。

其中,最高上传下载访问量=最大占用带宽数/传输数据分片最大尺寸。

步骤三、根据所述限速条件对所述访问请求进行处理。

在本发明中,设置了一般优先级,也就是满足了最高访问量的情况下,对于多个客户端发送来的请求进行优先级设置,并放入待处理的具有不同优先级的访问队列中,根据优先级级别对这些请求进行处理。从当前执行队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1。每隔一固定时间周期处理当前执行队列中的一个待执行的任务。请求队列是客户端发起请求后用于存放这些消息的队列,当前执行队列是从请求队列中获取的,即:将请求队列放入到当前执行队列中的。

同时,在本发明中,还是预先设置了最高访问量的1%作为高优先级预留通道,只有高优先级的请求可以占用,所述高优先级的级别高于所述一般优先级级别,如果无高优先级请求,则不使用该预留通道。

实施例2.

结合图1、2、3、4,本发明的一种用于网络拥堵的限速装置,包括,

拦截模块,用于拦截多个客户端的访问请求,

设置模块,用于根据所述访问请求设置限速条件,

处理模块,用于根据所述限速条件对所述访问请求进行处理。

所述装置包括:判断模块,用于在所述拦截多个客户端的访问请求之后,根据不同的所述访问请求设置限速条件之前,判断所述访问请求是否合法,如果不合法则拒绝访问请求。

所述判断模块还用于,若所述访问请求为合法的访问,则继续判断所述是否需要对所述访问请求进行限速,如果需要则根据不同的所述访问请求设置限速条件,否则直接调用后端服务完成请求处理。

所述设置模块,用于获取所述访问请求的至少一种消息类型,根据所述消息类型确定与之对应的最高访问量,当访问该类型消息的请求数量大于最高访问量时,返回给客户端提示信息,否则,将该消息类型对应的客户端请求根据一般优先级放入到不同的访问队列中。

所述处理模块,用于从当前执行的访问队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1。

所述装置还包括执行模块,用于每隔一固定时间周期处理当前执行队列中的一个待执行的任务。

实施例3.

本申请提供了一种网关服务器,包括:存储器、收发器和至少一个处理器,所述存储器中存储有指令,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个处理器调用所述指令,执行限速方法,执行的限速方法具体内容同实施例1,在此不做重复阐述。

实施例4.

结合图2,为本发明的一种用于网络拥堵的限速总体方案的流程图,其实现过程如下:

本发明是一种解决网络拥堵的网关限速方案,其总体方案流程图如图2所示,图中主要体现了网关限速处于整个网络系统中的位置,其中限速只属于网关中的统一拦截处理模块,可以根据不同消息请求来灵活判断是否进行限速拦截。

在一些大型企业(比如:银行、金融证券、政府机关等)内部,日常联机工作的客户端数量在几十万至上百万台不等,在某些时间高峰时间段(如:上班签到时间段等),部分系统或业务操作访问极其频繁,时常会出现系统响应缓慢,从而导致正常业务办理很慢的情况,严重时将会导致整个企业内部网络大面积拥堵,甚至瘫痪。

本发明针对企业的上述实际现状,当多个客户端向后端发送业务请求时,某些请求包括签到数据上传,某些请求保护业务数据请求,例如上班时间段集中签到的请求,业务操作极其频繁的数据上传请求,这些不同类型的消息同时访问后端时,必然造成网络带宽负担,数据量大则必然造成网络拥堵,设置系统瘫痪,造成办公效率低下,基于此,采用在客户端与应用服务器间新增一个网关服务器,网关服务器的作用主要包括三个方面,首先,要对接收到的请求进行合法性判断,现有的互联网发展中,网络安全关系到企业的核心秘密是否会泄露等,因此,仅允许合法的网络请求是网关服务器首先要完成的,其次,多个客户端发送的请求,请求的消息类型也是不同的,因为多个请求可能是去向不同的后端服务器,因此,本发明的网关服务器还具有对合法的请求中的消息进行提取,获取这些消息类型,有些类型的消息是不需要限速的,有些是需要的,不需要限速的消息直接通过后台调用,需要限速的消息才会进一步处理,这种操作也是为了消息在传送过程中,根据不同的属性进行有区别的处理,变得更加灵活,便于后期业务的扩展。第三,对于需要限速的或者不需要限速的消息,网关服务器都具有转发功能,根据不同的消息类型转发到该消息类型所对应的目的服务器中。因此,本发明的网关服务器具有较强的功能,避免在网络高峰时间段,各系统间网络拥堵相互干扰,严重时造成整个网络瘫痪,同时,限速更加稳定,不会出现忽高忽低的大幅度波动。并可以根据不同业务系统的不同业务请求来进行限速控制,确保各系统在高峰时间段内,能够正常访问,互不影响。

实施例5.

结合图3,为本发明的一种用于网络拥堵的限速流程图,其实现过程如下:

网关接收到来自不同客户端的不同请求后,首先判断该请求是否是合法请求,以防止恶意的网络攻击,请求合法,则进行限速控制。

以某个系统的业务操作为例进行说明。根据请求消息类型判断是否需要进行限速控制,若需要限速,则查询出该请求消息类型的最高访问量(根据设置的参数自动计算而来),如每秒最高访问量为500个。

网关服务器拦截到客户端的请求后,根据当前请求系统的请求排队数,判断是否进行排队,当排队数量超过最高访问量500时,则不排队,直接返回给客户端提示信息,否则将客户端请求根据请求类型的优先级分别放入到不同优先级的队列中,并将队列总数大小递增1。

采用多线程的方式,按照每秒最高访问量计算出每隔多少毫秒处理一个请求(例如,最高访问量为500,则每隔2毫秒处理一个请求),将从等待处理的队列中按照优先级由高到底的顺序,先进先出的原则顺序取出,存放到当前执行队列中。

从当前执行队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1.

为了避免一些请求处理持续进行,导致其他高优先级的处理无法得到及时响应,故而系统设计中将最高访问量的1%(计算结果不到1的,按照1来处理)做为预留通道,只有高优先级的请求可以占用,如无高优先级的请求,则空余。

实施例6.

结合图5,为银行网络拥堵的网关限速实施例,(以单机部署为例说明)。

本实施示例图中,举例说明的是银行网络中网关限速实施示例,客户端1、客户端2、…、客户端n是来自不同终端上不同系统的不同消息请求,网关服务器接收到客户端的消息请求后,判断并计算最高访问量进行限速控制,转发请求到对应的应用服务器完成请求处理并返回响应至客户端。

各营业网点的不同客户端通过自己网点的交换机,连接到网关服务器。

网关服务器分别拦截多个客户端的访问请求后,首先判断所述访问请求是否合法,如果不合法则拒绝访问请求。其次,判断所述是否需要对所述访问请求的消息类型进行限速,如果需要则根据不同的所述访问请求设置限速条件,否则直接调用后端服务完成请求处理。对于需要限速的请求,获取所述访问请求的至少一种消息类型,根据所述消息类型确定与之对应的最高访问量,当访问该类型消息的请求数量大于最高访问量时,返回给客户端提示信息,否则,将该消息类型对应的客户端请求根据一般优先级放入到不同的访问队列中。从当前执行的访问队列中取出将要执行的任务,然后调用后端远程服务完成逻辑处理,服务执行完成后,则当前执行队列数递减1。每隔一固定时间周期比如2ms,处理当前执行队列中的一个待执行的任务。

网关服务器转发请求到对应的应用服务器完成请求处理并返回响应至客户端。

在本发明中,预先设置最高访问量的1%作为高优先级预留通道,只有高优先级的请求可以占用,所述高优先级的级别高于所述一般优先级级别,如果无高优先级请求,则不使用该预留通道。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1