流控配置方法及系统技术方案

技术编号:20925875 阅读:25 留言:0更新日期:2019-04-20 11:45
本发明专利技术实施例提供一种流控配置方法。该方法包括:在各个业务系统中部署流控客户端;流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;监听etcd分布式存储集群,响应于etcd分布式存储集群中流控配置信息的更新,流控客户端以及流控服务端集群获取更新后的流控配置;流控客户端响应于各个业务系统的业务请求的输入,确定业务请求的需求配额,流控客户端根据需求配额通过流控服务端集群进行流控决策,以向流控服务端集群拉取配额。本发明专利技术实施例还提供一种流控配置系统。本发明专利技术实施例通过流控服务端监听所述etcd配置,提高了系统整理处理流控的实时性,减轻了流控服务端集群的任务,保证了整体系统运行的稳定性。

Flow Control Configuration Method and System

The embodiment of the present invention provides a flow control configuration method. The method includes: deploying the flow control client in each business system; synchronously obtaining the flow control configuration information from the etcd distributed storage cluster for initialization by the flow control client and the flow control server cluster; monitoring the etcd distributed storage cluster, responding to the update of the flow control configuration information in the etcd distributed storage cluster, obtaining the updated flow control configuration information by the flow control client and the flow control server cluster. Flow control configuration; Flow control client determines the demand quota of business requests in response to the input of business requests of each business system. Flow control client makes flow control decisions through the cluster of flow control servers according to the demand quota, in order to draw quota from the cluster of flow control servers. The embodiment of the invention also provides a flow control configuration system. The embodiment of the present invention improves the real-time ability of system sorting and processing flow control by monitoring the etcd configuration by the flow control server, reduces the task of the flow control server cluster, and ensures the stability of the overall system operation.

【技术实现步骤摘要】
流控配置方法及系统
本专利技术涉及流控领域,尤其涉及一种流控配置方法及系统。
技术介绍
“流控”是“流量控制”的简称。流控技术分为两种:一种是流控作为完整的功能模块加入到业务服务之中,业务服务通过调用模块接口实现流控功能;另一种是流控作为一个单独的服务,业务服务请求流控服务实现流控功能。在实现本专利技术过程中,专利技术人发现相关技术中至少存在如下问题:如果作为完整的流控功能模块,则需要在每个需要流控的业务服务中引入该模块,若需要更新或修复流控功能模块,则需要批量更新,这样较为繁琐。作为单独的流控服务,可以避免作为完整流控模块的缺点;但是,每次请求都需要向流控服务查询,这样显然影响了效率,且流控服务也面临很大压力。由于业务服务之间并不会保证使用相同的业务信息进行流控,就导致了流控的具体实现需要与业务相关,所以:若作为完整的流控模块,对于一个异构系统,无法得到复用。当需要更新修改时会很繁琐。若作为流控服务来部署,则需要业务服务收到请求时,询问流控服务当前业务服务的流量状态完成限流功能。
技术实现思路
为了至少解决现有技术中使用完整的流控模块,需要在每个需要流控的业务服务中引入该模块,使得后期维护较为繁琐,作为单独的流控服务在每次流控请求时,都需要向流控服务查询,影响了效率的问题。第一方面,本专利技术实施例提供一种流控配置方法,包括:在各个业务系统中部署流控客户端;流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;监听所述etcd分布式存储集群,响应于所述etcd分布式存储集群中流控配置信息的更新,所述流控客户端以及流控服务端集群获取更新后的流控配置;所述流控客户端响应于各个业务系统的业务请求的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,以向所述流控服务端集群拉取配额。第二方面,本专利技术实施例提供一种流控配置系统,包括:客户端部署程序模块,用于在各个业务系统中部署流控客户端;初始化程序模块,用于流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;流控配置获取程序模块,用于监听所述etcd分布式存储集群,响应于所述etcd分布式存储集群中流控配置信息的更新,所述流控客户端以及流控服务端集群获取更新后的流控配置;配额拉取程序模块,用于所述流控客户端响应于各个业务系统的业务请求的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,以向所述流控服务端集群拉取配额。第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本专利技术任一实施例的流控配置方法的步骤。第四方面,本专利技术实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本专利技术任一实施例的流控配置方法的步骤。本专利技术实施例的有益效果在于:通过流控服务端监听所述etcd配置,当配置更改时,即可立即生效,提高了系统整理处理流控的实时性。同时由于是流控客户端确定出需要的配额向流控服务端集群拉取,减轻了流控服务端集群的任务,使得各个业务之间流量分配更加合理且相对均匀,保证了整体系统运行的稳定性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例提供的一种流控配置方法的流程图;图2是本专利技术一实施例提供的一种流控配置系统的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示为本专利技术一实施例提供的一种流控配置方法的流程图,包括如下步骤:S11:在各个业务系统中部署流控客户端;S12:流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;S13:监听所述etcd分布式存储集群,响应于所述etcd分布式存储集群中流控配置信息的更新,所述流控客户端以及流控服务端集群获取更新后的流控配置;S14:所述流控客户端响应于各个业务系统的业务请求的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,以向所述流控服务端集群拉取配额。在本实施方式中,将流控功能作为单独的服务部署。然后业务服务通过拉去配额信息到本地,进行流控工作。可以根据业务的场景进行特殊的处理。对于步骤S11,在各个业务系统中部署流控客户端,其中,所述流控客户端可包含在需要进行限流的程序中,或者部署在与程序相同的机器上。需限流的程序通过调用流控客户端接口,从而流控客户端会结合维度指标(包含程序传入的信息,本机器的负载信息)等信息查询到指定的流控规则,一并传送到流控服务端,请求流量配额到本地。根据流量配额,请求流量通过。对于步骤S12,流控服务端集群和流控客户端都采用etcd存储配置信息。其中,所述etcd是用于共享配置和服务发现的分布式,一致性的KV(Key-Value键值)存储系统。etcd使用Raft协议来维护集群内各个节点状态的一致性。简单说,etcd集群是一个分布式系统,由多个节点相互通信构成整体对外服务,每个节点都存储了完整的数据,并且通过Raft协议保证每个节点维护的数据是一致的。每个etcd节点都维护了一个状态机,并且,任意时刻至多存在一个有效的主节点。主节点处理所有来自客户端写操作,通过Raft协议保证写操作对状态机的改动会可靠的同步到其他节点。由于etcd的分布式特性并提供数据监听的特性,配置的修改可以直接实时反馈到流控服务端集群和流控客户端,使配置生效,不需要重启服务。对于步骤S13,配置有流控配置信息控制台来修改配置信息,响应于所述etcd分布式存储集群中流控配置信息的更新,其中,流控服务端集群启动,从etcd中读取更新后的流控配置信息,进行初始化流控配置以提供服务,流控客户端随业务系统启动,从所述etcd中读取更新后的流控配置信息以初始化。对于步骤S14,所述流控客户端响应于各个业务系统的业务请求流量的输入,其中,所述请求包括请求流量的参数指标,例如,可以使用业务系统参数,也可以使用与业务无关的类似IP等信息。进而所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,例如,确定出需要多少配额,附上业务系统的类参数以及本机的负载信息,向所述流控服务端集群拉去配额。通过该实施方式可以看出,通过流控服务端监听所述etcd配置,当配置更改时,即可立即生效,提高了系统整理处理流控的实时性。同时由于是流控客户端确定出需要的配额向流控服务端集群拉取,减轻了流控服务端集群的任务,本文档来自技高网...

【技术保护点】
1.一种流控配置方法,包括:在各个业务系统中部署流控客户端;流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;监听所述etcd分布式存储集群,响应于所述etcd分布式存储集群中流控配置信息的更新,所述流控客户端以及流控服务端集群获取更新后的流控配置;所述流控客户端响应于各个业务系统的业务请求的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,以向所述流控服务端集群拉取配额。

【技术特征摘要】
1.一种流控配置方法,包括:在各个业务系统中部署流控客户端;流控客户端以及流控服务端集群同步从etcd分布式存储集群中获取流控配置信息进行初始化;监听所述etcd分布式存储集群,响应于所述etcd分布式存储集群中流控配置信息的更新,所述流控客户端以及流控服务端集群获取更新后的流控配置;所述流控客户端响应于各个业务系统的业务请求的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策,以向所述流控服务端集群拉取配额。2.根据权利要求1所述的方法,其中,所述流控客户端响应于各个业务系统业务请求数的输入,确定所述业务请求的需求配额,所述流控客户端根据所述需求配额通过所述流控服务端集群进行流控决策包括:流控客户端检查本地流控配额信息;若所述本地流控配额信息不满足需求配额时,将所述流控客户端本地负载信息以及所述需求配额发送至所述流控服务端集群,以拉取配额。3.根据权利要求2所述的方法,其中,在将所述流控客户端本地负载信息以及所述需求配额发送至所述流控服务端集群,以拉取配额之后,所述方法还包括:验证所述拉取配额是否满足所述业务请求的配额需求;当满足所述业务请求的配额需求时,给予所述业务系统响应;当不满足所述业务请求的配额需求时,拒绝所述业务系统的请求。4.根据权利要求1所述的方法,其中,所述流控客户端响应于各个业务系统业务请求的输入包括:所述业务请求通过websocket连接向所述业务系统输入,响应于所述业务请求的输入,对所述业务系统的引用次数加1,其中,所述业务系统的初始引用次数为0;当断开所述websocket连接时,对所述业务系统的引用次数减1;当所述引用次数为0时,以向所述流控服务端集群归还拉取的配额。5.一种流控配置系统,包括:客户端部署程序模块,用于在各个业务系统中部署流控客户端;初始化程序模块,用于流控客户...

【专利技术属性】
技术研发人员:王迪奇钟克强
申请(专利权)人:苏州思必驰信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1