限流方法、装置、电子设备及存储介质制造方法及图纸

技术编号:28878103 阅读:11 留言:0更新日期:2021-06-15 23:13
本公开实施例提供一种限流方法、装置、电子设备及存储介质,通过响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理;即本公开实施例在服务实例分组中存储终端设备的请求计量数据,避免了中心化存储的性能瓶颈,减少了通信延迟。

【技术实现步骤摘要】
限流方法、装置、电子设备及存储介质
本公开实施例涉及微服务
,尤其涉及一种限流方法、装置、电子设备及存储介质。
技术介绍
在微服务架构下,为了防止某项微服务被无限制的任意调用而造成服务打挂,需要对请求量进行限制,即进行限流保护。现有技术中,通常采用中心化存储方案对微服务进行分布式限流保护,即将请求的计量数据进行中心化存储。但是,由于实现微服务的各项服务实例需要与中心化存储节点进行频繁通信,存在着一定的性能瓶颈、通信延迟等,造成限流效果不佳。
技术实现思路
本公开实施例提供一种限流方法、装置、电子设备及存储介质,以克服中心化存储方案存在的性能瓶颈、通信延迟问题。第一方面,本公开实施例提供一种限流方法,包括:响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理。第二方面,本公开实施例提供一种限流装置,包括:确定模块,用于响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;获取模块,用于从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;处理模块,用于若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理。第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的限流方法。第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的限流方法。第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的限流方法。本实施例提供的限流方法、装置、电子设备及存储介质,通过响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理;即本公开实施例对所有服务实例进行分组,在服务实例分组中存储有终端设备的请求计量数据,当终端设备发起请求时,当前的服务实例与服务实例分组进行通信以获取终端设备的请求计量数据,实现了去中心化存储数据,避免了中心化存储的性能瓶颈,减少了通信延迟。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本公开实施例提供的一种应用场景示意图;图2为本公开实施例提供的限流方法的流程示意图一;图3为本公开实施例提供的限流方法示意图二;图4为本公开实施例提供的限流方法示意图三;图5为本公开提供的一种限流方法的流程框图;图6为本公开提供另一种限流方法的流程框图;图7为本公开实施例提供的限流装置的结构框图;图8为本公开实施例提供的电子设备的硬件结构示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。首先对本公开所涉及的名词进行解释:微服务:将整个应用分散成多个服务,例如可以将电商系统划分成用户服务、商品服务、订单服务、促销服务等。每个服务可以包括多个服务器,每个服务器上运行有实现该服务的服务实例。在微服务架构下,为了防止某项微服务被无限制的任意调用而造成服务打挂,需要对请求量进行限制,即进行限流保护。而由于微服务一般通过水平扩展以集群的方式进行部署,因此对应的限流方案就不是单机限流而是分布式架构下的限流。现有技术中,通常采用中心化存储方案对微服务进行分布式限流保护,即需要将请求的计量数据进行中心化存储。但是,由于实现微服务的各项服务实例需要与中心化存储节点进行频繁通信,存在着一定的性能瓶颈、通信延迟等,造成限流效果不佳。针对上述技术问题,本公开的技术构思在于:对于微服务架构下的的所有服务实例进行分组,每个服务实例分组记录对应终端设备的请求计量数据,即一部分节点(一部分服务器)存储一部分终端设备对应的请求计量数据,另一部分节点(另一部分服务器)存储另一部分终端设备对应的请求计量数据,从而实现了去中心化存储的分布式限流方案。图1为本公开实施例提供的一种应用场景示意图,如图1所示,用户通过终端设备向微服务发起请求,其中,微服务架构中包括多个服务器,所述微服务架构中每一服务器运行有服务实例,每个服务实例均可以实现与请求对应的业务功能。例如,在图1所示的微服务架构中,实现的是用户登录服务,即用户通过在终端设备上输入用户名、密码等向微服务发起登录请求,微服务对该登录请求进行响应。其中,微服务架构下的每一个服务器均可以执行下述各实施例所述的限流方法。参考图2,图2为本公开实施例提供的限流方法的流程示意图一。该限流方法应用于如图1所示的微服务架构中的任一服务器。所述方法包括:S101、响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组。其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据。具体来说,在微服架构下,会对服务实例进行分组,服务实例分组中的每一个服务实例对应的服务器上均存储有对应的终端设备的请求计量数据。举例来说,假设用于实现用户登录服务的服务器群部署有50个服务实例,即服务实例一、服务实例二、服务实例三……服务实例四十九、服务实例五十,将每5个服务实例分成一组,例如服务实例一至服务实例五构成第一服务实例分组,服务实例六至服务实例十构成第二服务实例分组,……服务实例本文档来自技高网...

【技术保护点】
1.一种限流方法,其特征在于,包括:/n响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;/n从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;/n若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理。/n

【技术特征摘要】
1.一种限流方法,其特征在于,包括:
响应于终端设备发起的请求,确定所述终端设备所对应的服务实例分组;其中,所述服务实例分组包括至少一个服务实例,所述服务实例分组中的每一个服务实例对应的服务器上存储有终端设备的请求计量数据;
从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据;
若根据所述终端设备对应的请求计量数据确定进行限流处理,则对所述终端设备进行限流处理。


2.根据权利要求1所述的方法,其特征在于,所述响应于终端设备发起的请求之前,还包括:
获取所有服务实例标识;
根据所有服务实例标识对所有服务实例进行分组,获得所述服务实例分组;
构建终端设备与所述服务实例分组的对应关系。


3.根据权利要求2所述的方法,其特征在于,所述服务实例标识为互联网协议IP地址;
所述根据所有服务实例标识对所有服务实例进行分组,获得所述服务实例分组,包括:
根据所述互联网协议IP地址对所有服务实例进行排序;
按照预设分组数对排序的所有服务实例进行分组,获得所述服务实例分组。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若按照预设分组数对排序的所有服务实例进行分组后,还剩余小于预设分组数的服务实例未进行分组,则将未进行分组的服务实例组成一组服务实例分组,或者将未进行分组的服务实例分别添加到已经分组好的服务实例分组中。


5.根据权利要求1-4任一项所述的方法,其特征在于,所述终端设备所对应的服务实例分组对应的服务器中,包括当前的服务器。


6.根据权利要求1-4任一项所述的方法,其特征在于,若终端设备所对应的服务实例分组对应的服务器中,不包括当前的服务器,则从所述终端设备所对应的服务实例分组对应的任一服务器中,获取与所述终端设备对应的请求计量数据,包括:
向所述终端设备所对应的服务实例分组对应的任一服务器,发送获取请求;其中,所述获取请求用于指示获取与所述终端设备对应的请求计量数据;
接收所述任一服务器发送的与所述终端设备对应的请求计量数据。


7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若没有从所述服务实例分组对应的任一服务器中接收到与所述终端设备对应的请求计量数据,则再次执行所述向所述终端设备所对应的服务实例分组对应的任一服务器,发送获取请求的步骤。


8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若再次执行所述向所述终端设备所对应的服务实例分组对应的任一服务器,发送获取请求的步骤后,还是没有接收到所述终端设备对应的请求计量数据,则根据当前的服务器上所存储的终端设备对应的请求计量数据确定是否进行限流处理。


9.根据权利要求1-4任一项所述的方法,其特征在于,所述终端设备对应的请求计量数据为当前时间间隔的终端设备对应的请求计量数据。


10.根据权利要求1-4任一项所述的方法,其特征在于,所述终端设备对应的请求计量数据为多个预设时间间隔的终端设备对应的请求计量数据;则所述根据所述终端设备对应的请求计量数据确定进行限流处理,包括:
...

【专利技术属性】
技术研发人员:宋双洋刘鹏陈兴修
申请(专利权)人:北京字跳网络技术有限公司
类型:发明
国别省市:北京;11

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

1