CN110535776A - 网关限流方法、装置、网关、系统及存储介质 - Google Patents
网关限流方法、装置、网关、系统及存储介质 Download PDFInfo
- Publication number
- CN110535776A CN110535776A CN201910613993.2A CN201910613993A CN110535776A CN 110535776 A CN110535776 A CN 110535776A CN 201910613993 A CN201910613993 A CN 201910613993A CN 110535776 A CN110535776 A CN 110535776A
- Authority
- CN
- China
- Prior art keywords
- current limiting
- limiting plug
- plug
- starting
- database
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012423 maintenance Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及信息技术领域,公开了一种网关限流方法、装置、网关、系统及存储介质,包括:以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,所述限流插件启动列表用于指示需启动的各限流插件,各所述限流插件分别对应一限流策略;根据所述更新后的限流插件启动列表,运行所述需启动的各限流插件进行限流。本发明实施方式中提供的网关限流方法、装置、网关、系统及存储介质,可以提高网关限流策略更新的效率。
Description
技术领域
本发明实施例涉及信息技术领域,特别涉及一种网关限流方法、装置、网关、系统及存储介质。
背景技术
为了保证网络的稳定和数据库的正常使用,需要在用户并发数较大时实施网络的限流。目前常用的限流方法有令牌桶、漏桶、计数器等方式。
发明人发现现有技术中至少存在如下问题:当限流策略需要改变时,传统的方法需要先进行线下测试,线下测试成功后,在系统空闲时进行重启后进行限流策略的更改,限流策略的更新不够灵活,效率较低。
发明内容
本发明实施方式的目的在于提供一种网关限流方法、装置、网关、系统及存储介质,使得限流策略的更新的效率提高。
为解决上述技术问题,本发明的实施方式提供了一种网关限流方法,包括:以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,限流插件启动列表用于指示需启动的各限流插件,各限流插件分别对应一限流策略;根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。
本发明的实施方式还提供了一种网关限流装置,包括:启动列表维护模块,用于以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,限流插件启动列表用于指示需启动的各限流插件,各限流插件分别对应一限流策略;限流模块,用于根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。
本发明的实施方式还提供了一种网关,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的网关限流方法。
本发明的实施方式还提供了一种网关限流系统,包括:数据库和与数据库通信连接的N个上述的网关,其中,N为大于零的自然数。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的网关限流方法。
本发明实施方式相对于现有技术而言,提供了一种网关限流方法,通过以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。由于各个网关节点都是以相同的启动插件的列表进行限流的,因此可使各个节点的启动限流插件始终保持一致,而且,以限流插件启动列表的方式指示需要启动的限流插件,灵活度高,无需重启即可实现限流策略的更新和同步,因此提高了限流策略的更新效率。
另外,所述根据所述更新后的限流插件启动列表,运行所述需启动的各限流插件进行限流,具体包括:若所述更新前的限流插件启动列表,相对所述更新后的限流插件启动列表,存在缺失的限流插件,则从所述数据库中获取并启动所述缺失的限流插件;若所述更新前的限流插件启动列表,相对所述更新后的限流插件启动列表,存在多余的限流插件,则停止所述多余的限流插件的运行。使网关服务器的限流插件与数据库中的限流插件启动列表保持一致,实现限流策略的更新。
另外,所述限流插件通过以下方式上传至所述数据库中:获取客户端上传的限流插件,所述上传的限流插件包括预先定义的插件启动方法;对所述上传的限流插件进行唯一标识;将经所述唯一标识后的所述限流插件,上传至所述数据库。通过对上传的限流插件进行唯一标识,即使用户在上传限流插件时用了相同的名称,网关服务器也可以进行区分;将唯一标识后的限流插件上传至数据库,数据库也可以根据唯一标识对各个限流插件进行区分,方便后续对限流插件的维护。
另外,网关限流方法还可以包括:响应于客户端发送的限流插件启动命令,获取所述限流插件启动命令指示的需启动的限流插件的名称;若所述限流插件启动命令指示的需启动的限流插件为所述数据库中存储的限流插件,则将所述限流插件启动命令指示的需启动的限流插件的名称,添加到所述数据库中设置的限流插件启动列表中;响应于客户端发送的限流插件停止命令,获取所述限流插件停止命令指示的需停止的限流插件的名称,并在所述数据库中设置的限流插件启动列表中,删除所述需停止的限流插件的名称。通过客户端发送限流插件的启动或停止命令,可以灵活实施相应的限流策略,提高了限流策略的更新效率。
附图说明
图1是本发明第一实施方式中网关限流方法的一流程示意图;
图2是本发明第一实施方式中将限流插件上传至数据库的一示例图;
图3是本发明第二实施方式中网关限流方法的一流程示意图;
图4是本发明第二实施方式中将缺失的限流插件下载的一示例图;
图5是本发明第二实施方式中将下载的限流插件加载的一示例图;
图6是本发明第二实施方式中将多余的限流插件停止运行的一示例图;
图7是本发明第二实施方式中将下载后的限流插件启动的一示例图;
图8是本发明第二实施方式中网关服务器的一具体示例图;
图9是本发明第二实施方式中网关服务器的一架构示意图;
图10是本发明第三实施方式中网关限流方法的一流程示意图;
图11是本发明第四实施方式中网关限流装置的一原理框图;
图12是本发明第五实施方式中网关的一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施方式涉及一种网关限流方法。在本实施方式中,以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,限流插件启动列表用于指示需启动的各限流插件,各限流插件分别对应一限流策略;根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。通过将本地网关节点的限流插件启动列表更新为数据库中的限流插件启动列表,根据更新后的本地的限流插件启动列表运行各限流插件,无需进行系统的重启即可完成限流策略的更新,提高限流策略的更新效率和对各个限流方式的包容性。
下面对本实施方式的网关限流方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
需要说明的是,本发明部分实施方式中的数据库可以为分布式键值对存储数据库,例如Redis,也可以为其它数据库,本发明实施方式对此不做具体限制。
本实施方式中的网关限流方法的流程示意图如图1所示,具体包括以下步骤:
步骤101:判断是否达到预设时间间隔。
需要说明的是,本实施方式的执行主体可以为网关服务器,可选地,网关服务器具体可以为API网关服器,其中,网关服务器代表一个网关节点,各个网关节点与数据库相连接,用于实现对数据库的访问、服务器的访问或其它情况的限流,保证网络和数据库的稳定。
其中,预设时间间隔可以根据实际需要进行设置,本实施方式对此不做具体限制。
具体地,网关服务器可以根据设置的计时器进行判断,若时间到达预设的时间间隔,则进入步骤102,否则继续执行步骤101,直到时间到达预设的时间间隔。
步骤102:将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表。
其中,限流插件是指用于对数据库的访问、服务器的访问或其它情况进行限流的插件,本实施方式对此不做具体限制。一个限流插件对应一种限流策略,限流策略包括令牌桶、漏桶、计数器等方式;限流插件启动列表用于指示各网关节点需要启动的限流插件,本地设置的限流插件启动列表是指设置于各网关节点的限流插件启动列表。
可选地,数据库中设置的限流插件启动列表由用户(例如网关管理员)根据限流策略进行定期维护。
可选地,网关服务器将数据库中的限流插件启动列表下载后,将下载的限流插件启动列表对本地网关节点的限流插件启动列表进行替换,完成本地网关节点的限流插件启动列表的更新。
步骤103:根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。
可选地,网关服务器根据更新后的限流插件启动列表获取每一个需要启动的限流插件的名称,再根据限流插件的名称一一运行各个限流插件,实施数据库的限流策略。其中,各个限流插件可以由网关服务器从一指定的位置下载得到,并存储于网关服务器中,网关服务器可根据限流插件的名称获取并运行限流插件。
当步骤103执行完之后,返回执行步骤101,即重新判断是否达到预设时间间隔,进入下一个循环。
与现有技术相比,本实施方式通过判断是否达到预设时间间隔,若是则将本地设置的限流插件启动列表更新为数据库中设置的限流插件启动列表,根据更新后的限流插件启动列表运行需要启动的限制插件进行限流。本实施方式实现了可热插拔式的插件方式,由于各个网关节点都是以相同的启动插件的列表进行限流的,因此可使各个节点的启动限流插件始终保持一致,而且,以限流插件启动列表的方式指示需要启动的限流插件,灵活度高,无需重启即可实现限流策略的更新和同步,因此提高了限流策略的更新效率,同时也提高了对各个限流方式的包容性。
在一个具体的例子中,限流插件可以通过以下步骤上传至数据库中:
步骤201:获取客户端上传的限流插件,上传的限流插件包括预先定义的插件启动方法。
步骤202:对上传的限流插件进行唯一标识。
步骤203:将经唯一标识后的限流插件,上传至数据库。
请参考图2,其为将限流插件上传至数据库的示例图。
其中,客户端是指与网关服务器连接的客户端,例如可以是浏览器、APP或其它应用程序;预先定义的插件启动方式可以根据实际需要进行设置,例如以stark方式启动插件,且预先定义的插件启动方式可以设置为相同的方式,也可以为不同的限流插件有不同的启动方式,本实施方式对此不做限制。
其中,唯一标识是指对各个限流插件进行不同的标识,使各个限流插件分别对应一个标识。可选地,可以为上传的限流插件设置时间戳,由于时间戳是随时间变化而不同,因此可以用时间戳对限流插件进行唯一标识。用时间戳对上传的限流插件进行唯一标识,即使用户在上传限流插件时使用了相同的名称,网关服务器也可以根据时间戳进行区分。可选地,也可以使用其它标识对限流插件进行唯一标识,例如,可以用流水号对限流插件进行标识,本实施方式对此不做具体限制。
可选地,客户端将限流插件上传至网关服务器时,是通过post接口上传。
将客户端上传的限流插件进行唯一标识后,网关服务器将唯一标识好的限流插件上传至数据库。
可以理解的是,由于用户在客户端是通过某一网关服务器的节点进行上传限流插件,因此其它网关节点并未存储上传的限流插件,其它网关节点还需要从数据库中下载上传的限流插件才能加载运行。
通过对上传的限流插件进行唯一标识,即使用户在上传限流插件时用了相同的名称,网关服务器也可以进行区分;将唯一标识后的限流插件上传至数据库,数据库也可以根据唯一标识对各个限流插件进行区分,方便后续对限流插件的维护。同时,通过将限流插件进行唯一化,可以让数据库中维护的限流插件启动列表可以在限流插件更新不同版本后,即使不更新限流插件名称的情况下进行有变动的更新,各个网关节点也就可以根据限流插件启动列表删除旧版本限流插件并加载新版本的限流插件。
本发明的第二实施方式涉及一种网关限流方法,如图3所示,第二实施方式与第一实施方式大致相同,主要区别之处在于在步骤103中,即根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流,具体可以包括以下步骤:
步骤1031:判断更新前的限流插件启动列表是否相对更新后的限流插件启动列表,存在缺失的限流插件。若存在缺失的限流插件,则进入步骤1032;若不存在缺失的限流插件,则进入步骤1033。
步骤1032:从数据库中获取并启动缺失的限流插件。
步骤1033:判断更新前的限流插件启动列表是否相对更新后的限流插件启动列表,存在多余的限流插件。若存在多余的限流插件,则进入步骤1034;若不存在多余的限流插件,则返回步骤101。
步骤1034:停止多余的限流插件的运行。
可选地,网关服务器将自身的限流插件启动列表与数据库中的限流插件启动列表进行比较,若数据库中的限流插件启动列表中某个限流插件在网关服务器的限流插件启动列表中没有,则网关服务器判定存在该限流插件为缺失的限流插件,网关服务器从数据库中下载该缺失的限流插件并加载运行。可选地,在网关服务器中保存有更新前和更新后的限流插件启动列表,网关服务器将更新前后的限流插件启动列表进行比较后,可以得到缺失的限流插件。
请参考图4,其为将缺失的限流插件下载至网关服务器的示例图。具体地,网关服务器根据数据库中的限流插件启动列表获取缺失的限流插件的名称,再根据缺失的限流插件的名称在数据库中找到相应的限流插件,下载后存储至网关服务器指定的目录中,例如src/Plugins/otherPlugins/目录中。
请参考图5,其为将下载的限流插件加载的示例图。具体地,网关服务器获取待加载的限流插件名称(下载好的缺失的限流插件),根据待加载的限流插件名称的指定的路径(下载时指定的目录)加载限流插件。
在步骤1031中,若更新前的限流插件启动列表相对于更新后的限流插件启动列表没有变化,则网关服务器判定没有缺少的限流插件,进入步骤1033,判断更新前的限流插件启动列表是否相对更新后的限流插件启动列表存在多余的限流插件。
具体地,网关服务器将自身的限流插件启动列表与数据库中的限流插件启动列表进行比较,若自身的限流插件启动列表中存在某个限流插件在数据库中的限流插件启动列表中没有,则网关服务器判定该限流插件为多余的限流插件,网关服务器将该多余的限流插件停止运行。
请参考图6,其为将多余的限流插件停止运行的示例图。具体地,网关服务器根据自身的限流插件启动列表获取多余的限流插件的名称,再根据该多余的限流插件的名称遍历网关服务器的路由栈表,若路由栈表中存在与该多余的限流插件的名称匹配的项,则将该匹配的项进行删除。
在步骤1033中,若更新前的限流启动列表相对于更新后的限流插件启动列表没有多余的限流插件,则返回步骤101,进入下一次循环。在步骤1034执行完之后,也返回步骤101。
与现有技术相比,本实施方式通过比较网关服务器更新前后的限流插件启动列表,若存在缺失的限流插件,则从数据库中下载并运行;若存在多余的限流插件,则停止运行多余的限流插件,使网关服务器的限流插件与数据库中的限流插件启动列表保持一致,实现限流策略的更新。
在一个例子中,步骤1032,即从数据库中获取并启动缺失的限流插件,具体可以包括以下步骤:
步骤301:从数据库中下载缺失的限流插件。
步骤302:对缺失的限流插件进行名称变化,得到缺失的限流插件的启动名称。
步骤303:以缺失的限流插件的插件启动方法进行启动。
步骤304:调整缺失的限流插件的启动进程在路由栈中的位置。
请参考图7,其为将下载后的限流插件启动的示例图。具体地,网关服务器根据缺失的限流插件的名称进行名称变化后得到缺失的限流插件的启动名称,再根据缺失的限流插件的插件启动方法进行启动,例如,通过app.use调用该插件的start方法以启动限流插件,并将该缺失的限流插件的启动进程在路由栈中的位置调整至可执行处。可以理解的是,由于系统进程执行过程中执由路由栈的顺序性,通过将缺失的限流插件的启动进程调整至可执行的位置,可以保证限流策略得到及时的实施,从而保证了网络和数据库的稳定。
在一个例子中,请参考图8,其为网关服务器的一具体示例图。
其中,上传下载模块中的上传子模块,用于上传自定义的限流插件至网关服务器,网关服务器再将其上传至数据库;
下载子模块,用于从数据库中下载限流插件;
限流插件启动模块中的启动子模块的触发单元,用于触发启动执行单元;
启动执行单元,用于将加载的限流插件运行;
限流插件启动模块中的停止子模块的触发单元,用于触发停止执行单元;
停止执行单元,用于根据待停止的限流插件名称进行停止限流插件的操作;
同步模块中的计时子模块,用于通过配置的预设周期定时执行同步操作;
同步子模块,用于同步各个网关节点上运行的限流插件启动列表。
请参考图9,其为网关服务器的一架构示意图,具体地,图中以Redis数据库为例,ApiGateway代表各网关节点,Client代表客户端;客户端通过网关服务器上传自定义的限流插件至Redis数据库,并根据限流策略更新数据库中的限流插件启动列表,各网关服务器根据预设周期检查本地的限流插件启动列表是否与Redis数据库中的限流插件启动列表是否一致,根据Redis数据库中的限流插件启动列表启动或停止某个限流插件。
本发明的第三实施方式涉及一种网关限流方法,本实施方式的流程图如图10所示,具体包括以下步骤:
步骤401:判断是否接收到客户端发送的限流插件启动命令,若接收到限流插件启动命令,则进入步骤402;若未接收到限流插件启动命令,则进入步骤405。
步骤402:获取限流插件启动命令指示的需启动的限流插件的名称。
步骤403:判断限流插件启动命令指示的需启动的限流插件是否为数据库中存储的限流插件,若需启动的限流插件为数据库中存储的限流插件,则进入步骤404,若需启动的限流插件不是数据库存储的限流插件,则返回错误信息。
步骤404:将限流插件启动命令指示的需启动的限流插件的名称,添加到数据库中设置的限流插件启动列表中。
步骤405:判断是否接收到客户端发送的限流插件停止命令,若接收到限流插件停止命令,则进入步骤406;若未接收到限流插件停止命令,则结束步骤流程。
步骤406:获取限流插件停止命令指示的需停止的限流插件的名称,并在数据库中设置的限流插件启动列表中,删除需停止的限流插件的名称。
具体地,网关服务器可以接收客户端发过来的限流插件的相关命令,例如,网关管理员根据限流策略的改变通过客户端向网关服务器发送限流插件启动命令。在步骤401中,若判定没有接收到客户端发送的限流插件启动命令,则进入步骤405。
当网关服务器接收到客户端发送的限流插件启动命令时,根据限流插件启动命令获取需启动的限流插件的名称;网关服务器与数据库进行通信,判断限流插件启动命令需要启动的限流插件是否为数据库存储的限流插件,若是,则将该需启动的限流插件的名称添加到数据库中设置的限流插件启动列表中,使数据库中的限流插件启动列表进行了更新,以使后续网关节点将本地设置的限流插件启动列表与数据库中更新了的限流插件启动列表进行比较,从而在网关节点上添加限流插件启动命令指示的需启动的限流插件;若否,则返回错误信息,使用户通过客户端上传限流插件启动命令对应的限流插件后再进行后续的操作。
当接收到客户端发送的限流插件停止命令时,网关服务器根据限流插件停止命令获取需要停止的限流插件的名称,并在数据库中设置的限流插件启动列表中,删除需要停止的限流插件的名称,使数据库中的限流插件启动列表更新,以使网关节点根据数据库中的限流插件启动列表停止与限流插件停止命令对应的限流插件。
与现有技术相比,本实施方式通过网关服务器接收客户端发送的限流插件启动命令,将限流插件启动命令对应的限流插件名称添加到数据库中的限流插件启动列表中;通过接收客户端发送的限流插件停止命令,将限流插件停止命令对应的限流插件名称从数据库中的限流插件启动列表中删除,实现了数据库中的限流插件启动列表的更新。通过客户端发送限流插件的启动或停止命令,可以灵活实施相应的限流策略,提高了限流策略的更新效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第四实施方式涉及一种网关限流装置,如图11所示,包括:
启动列表维护模块501,用于以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,限流插件启动列表用于指示需启动的各限流插件,各限流插件分别对应一限流策略;
限流模块502,用于根据更新后的限流插件启动列表,运行需启动的各限流插件进行限流。
可选地,限流模块502还用于:
若更新前的限流插件启动列表,相对更新后的限流插件启动列表,存在缺失的限流插件,则从数据库中获取并启动缺失的限流插件;
若更新前的限流插件启动列表,相对更新后的限流插件启动列表,存在多余的限流插件,则停止多余的限流插件的运行。
可选地,限流插件可通过以下方式上传至数据库中:
获取客户端上传的限流插件,上传的限流插件包括预先定义的插件启动方法;
对上传的限流插件进行唯一标识;
将经唯一标识后的限流插件,上传至数据库。
可选地,可以为上传的限流插件设置时间戳。
可选地,从数据库中获取并启动缺失的限流插件,具体包括:
从数据库中下载缺失的限流插件;
对缺失的限流插件进行名称变化,得到缺失的限流插件的启动名称;
以缺失的限流插件的插件启动方法进行启动;
调整缺失的限流插件的启动进程在路由栈中的位置。
可选地,本实施方式的网关限流装置还用于:
响应于客户端发送的限流插件启动命令,获取限流插件启动命令指示的需启动的限流插件的名称;
若限流插件启动命令指示的需启动的限流插件为数据库中存储的限流插件,则将限流插件启动命令指示的需启动的限流插件的名称,添加到数据库中设置的限流插件启动列表中;
响应于客户端发送的限流插件停止命令,获取限流插件停止命令指示的需停止的限流插件的名称,并在数据库中设置的限流插件启动列表中,删除需停止的限流插件的名称。
可选地,数据库具体为分布式键值对存储数据库。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第五实施方式涉及一种网络设备,如图12所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述的网关限流方法。
其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。
处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。
本发明第六实施方式涉及一种网关限流系统,包括数据库和与数据库通信连接的N个如第五实施方式中的网关,其中,N为大于零的自然数。
本发明第七实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (11)
1.一种网关限流方法,其特征在于,包括:
以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,所述限流插件启动列表用于指示需启动的各限流插件,各所述限流插件分别对应一限流策略;
根据所述更新后的限流插件启动列表,运行所述需启动的各限流插件进行限流。
2.根据权利要求1所述的网关限流方法,其特征在于,所述根据所述更新后的限流插件启动列表,运行所述需启动的各限流插件进行限流,具体包括:
若所述更新前的限流插件启动列表,相对所述更新后的限流插件启动列表,存在缺失的限流插件,则从所述数据库中获取并启动所述缺失的限流插件;
若所述更新前的限流插件启动列表,相对所述更新后的限流插件启动列表,存在多余的限流插件,则停止所述多余的限流插件的运行。
3.根据权利要求2所述的网关限流方法,其特征在于,所述限流插件通过以下方式上传至所述数据库中:
获取客户端上传的限流插件,所述上传的限流插件包括预先定义的插件启动方法;
对所述上传的限流插件进行唯一标识;
将经所述唯一标识后的所述限流插件,上传至所述数据库。
4.根据权利要求3所述的网关限流方法,其特征在于,所述对所述上传的限流插件进行唯一标识,具体包括:
为所述上传的限流插件设置时间戳。
5.根据权利要求3所述的网关限流方法,其特征在于,所述从所述数据库中获取并启动所述缺失的限流插件,具体包括:
从所述数据库中下载所述缺失的限流插件;
对所述缺失的限流插件进行名称变化,得到所述缺失的限流插件的启动名称;
以所述缺失的限流插件的插件启动方法进行启动;
调整所述缺失的限流插件的启动进程在路由栈中的位置。
6.根据权利要求1至5中任一项所述的网关限流方法,其特征在于,还包括:
响应于客户端发送的限流插件启动命令,获取所述限流插件启动命令指示的需启动的限流插件的名称;
若所述限流插件启动命令指示的需启动的限流插件为所述数据库中存储的限流插件,则将所述限流插件启动命令指示的需启动的限流插件的名称,添加到所述数据库中设置的限流插件启动列表中;
响应于客户端发送的限流插件停止命令,获取所述限流插件停止命令指示的需停止的限流插件的名称,并在所述数据库中设置的限流插件启动列表中,删除所述需停止的限流插件的名称。
7.根据权利要求1至5中任一项所述的网关限流方法,其特征在于,
所述数据库具体为分布式键值对存储数据库。
8.一种网关限流装置,其特征在于,包括:
启动列表维护模块,用于以预设周期将本地设置的限流插件启动列表,同步更新为数据库中设置的限流插件启动列表;其中,所述限流插件启动列表用于指示需启动的各限流插件,各所述限流插件分别对应一限流策略;
限流模块,用于根据所述更新后的限流插件启动列表,运行所述需启动的各限流插件进行限流。
9.一种网关,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的网关限流方法。
10.一种网关限流系统,其特征在于,包括:数据库和与所述数据库通信连接的N个如权利要求9所述的网关,其中,所述N为大于零的自然数。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的网关限流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613993.2A CN110535776B (zh) | 2019-07-09 | 2019-07-09 | 网关限流方法、装置、网关、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910613993.2A CN110535776B (zh) | 2019-07-09 | 2019-07-09 | 网关限流方法、装置、网关、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110535776A true CN110535776A (zh) | 2019-12-03 |
CN110535776B CN110535776B (zh) | 2022-12-27 |
Family
ID=68659577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910613993.2A Active CN110535776B (zh) | 2019-07-09 | 2019-07-09 | 网关限流方法、装置、网关、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535776B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347041A (zh) * | 2021-06-21 | 2021-09-03 | 深圳壹账通智能科技有限公司 | 动态限流熔断配置方法、装置、设备及存储介质 |
CN113452553A (zh) * | 2021-06-18 | 2021-09-28 | 上海艾拉比智能科技有限公司 | 一种内容分发网络流量限制方法及系统 |
CN116192758A (zh) * | 2023-02-07 | 2023-05-30 | 浙江九州云信息科技有限公司 | 一种基于网关服务Kong的多规则组合限流控制器 |
CN117596080A (zh) * | 2024-01-18 | 2024-02-23 | 北京安博通科技股份有限公司 | 一种终端用户流量的访问控制方法、设备、终端及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050220034A1 (en) * | 2004-03-31 | 2005-10-06 | Siemens Information And Communication Networks Inc. | Traffic control in an internet protocol network |
CN107404421A (zh) * | 2017-09-18 | 2017-11-28 | 赛尔网络有限公司 | 流量监测、监管方法及系统 |
CN108418764A (zh) * | 2018-02-07 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 限流方法、装置、计算机设备和存储介质 |
-
2019
- 2019-07-09 CN CN201910613993.2A patent/CN110535776B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050220034A1 (en) * | 2004-03-31 | 2005-10-06 | Siemens Information And Communication Networks Inc. | Traffic control in an internet protocol network |
CN107404421A (zh) * | 2017-09-18 | 2017-11-28 | 赛尔网络有限公司 | 流量监测、监管方法及系统 |
CN108418764A (zh) * | 2018-02-07 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 限流方法、装置、计算机设备和存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113452553A (zh) * | 2021-06-18 | 2021-09-28 | 上海艾拉比智能科技有限公司 | 一种内容分发网络流量限制方法及系统 |
CN113347041A (zh) * | 2021-06-21 | 2021-09-03 | 深圳壹账通智能科技有限公司 | 动态限流熔断配置方法、装置、设备及存储介质 |
CN113347041B (zh) * | 2021-06-21 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 动态限流熔断配置方法、装置、设备及存储介质 |
CN116192758A (zh) * | 2023-02-07 | 2023-05-30 | 浙江九州云信息科技有限公司 | 一种基于网关服务Kong的多规则组合限流控制器 |
CN116192758B (zh) * | 2023-02-07 | 2024-03-29 | 浙江九州未来信息科技有限公司 | 一种基于网关服务Kong的多规则组合限流控制器 |
CN117596080A (zh) * | 2024-01-18 | 2024-02-23 | 北京安博通科技股份有限公司 | 一种终端用户流量的访问控制方法、设备、终端及系统 |
CN117596080B (zh) * | 2024-01-18 | 2024-04-23 | 北京安博通科技股份有限公司 | 一种终端用户流量的访问控制方法、设备、终端及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110535776B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110535776B (zh) | 网关限流方法、装置、网关、系统及存储介质 | |
US9960963B2 (en) | Dynamic client fail-over during a rolling patch installation based on temporal server conditions | |
CN107193607B (zh) | 用于更新代码文件的方法和装置、存储介质、处理器以及终端 | |
CN105320527A (zh) | 基于zookeeper分布式搜索引擎的配置文件更新方法、装置及系统 | |
US11876676B2 (en) | Network node firmware update | |
CN105871568B (zh) | 软件升级方法和系统 | |
CN104618136B (zh) | 用于刀片服务器的配置管理方法和装置 | |
CN107704550B (zh) | 文件迁移方法、装置以及计算机可读存储介质 | |
CN111683114A (zh) | 一种设备程序的升级方法、装置、终端设备和存储介质 | |
CN104954482A (zh) | 管理配置的系统及方法 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
EP4162649A1 (en) | Stable references for network function life cycle management automation | |
CN107463390B (zh) | 一种软件升级方法及升级服务器 | |
CN113626054A (zh) | 一种业务服务更新方法及装置 | |
CN110968646B (zh) | 一种嵌入式系统数据库同步方法、装置及存储介质 | |
CN116760815A (zh) | 固件版本升级方法及装置 | |
US11409700B2 (en) | Method, electronic device and computer program product for snapshot replication | |
CN106407320B (zh) | 文件处理方法、装置及系统 | |
JP5051070B2 (ja) | プログラム配信システム、その配信サーバ、プログラム | |
CN116107603B (zh) | 一种固件升级方法、装置、存储介质和电子设备 | |
CN104503811A (zh) | 基于单存储区的通信设备升级方法及系统 | |
CN108196852A (zh) | 一种软件运行方法、更新方法和相关装置 | |
US11748483B2 (en) | Efficient firmware updates | |
CN109379408B (zh) | 一种业务参数更新系统及控制主机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |