微服务均衡方法及装置制造方法及图纸

技术编号:27418107 阅读:20 留言:0更新日期:2021-02-21 14:35
本公开关于一种微服务均衡方法及装置,其中方法应用于服务发现方,服务器发现方存储用于执行目标功能中一微服务的服务器地址信息集合,且,服务器地址信息集合按照服务器对微服务的执行时长排序;接收多个客户端对微服务的多个调用请求,并将多个调用请求存储至微服务对应的调用请求集合中;按照执行目标功能所需的剩余时长,对调用请求集合执行排序操作;分发服务器地址信息集合中的服务器地址信息至调用请求集合中的调用请求对应的客户端,其中,服务器地址信息的执行时长与调用请求的剩余时长逆相关。本公开可以按照执行时长和剩余时长来合理分配服务器地址信息,所以可以尽量保证不同电子终端中客户端对于相同目标功能的执行时长尽量一致。的执行时长尽量一致。的执行时长尽量一致。

【技术实现步骤摘要】
微服务均衡方法及装置


[0001]本公开涉及互联网
,尤其涉及微服务均衡方法及装置。

技术介绍

[0002]随着互联网技术的进步、逐步出现微服务架构(Micro service Architecture),微服务架构是一种架构概念,旨在通过将功能分解到各个离散的微服务中、以实现对功能的解耦。也即,一个功能可以由多个连续的微服务来实现,排列在前的微服务可以调用排列在后的微服务,多个连续的微服务执行完毕后可以实现功能。
[0003]相关技术中,在微服务架构中具有多个执行微服务的服务器,每个服务器可以执行一个或多个微服务。客户端向服务端发起一个微服务的调用请求后,服务端会采用就近原则确定执行微服务的服务器地址信息,也即服务发现方从物理位置上查询与客户端距离最近的一个服务器,并确定该服务器能够执行该微服务的服务器地址信息,并发送至客户端。
[0004]就近原则可以在一定程度上可以减少客户端到服务器之间的调用时间,但是,与客户端物理距离最近的服务器的空闲资源情况不明,可能空闲资源较多可以立即响应调用请求并执行该微服务,可能空闲资源较少需要等待一段时间后再响应调用请求并执行该微服务。
[0005]在多个客户端情况下,则具有与多个客户端距离最近的多个不同服务器。由于不同服务器的空闲资源情况不同,所以不同客户端调用同一微服务的执行时长也不同。一个功能由多个连续微服务实现,在不同微服务的执行时长不尽相同的情况下,不同客户端对同一功能执行时长不尽相同,这非常影响用户对同一功能的交互体验。
专利技术内
[0006]本公开提供一种微服务均衡方法及装置,以至少解决相关技术中不同客户端对同一功能的执行时长不尽相同的问题,进而提升不同客户端对同一功能的交互体验。本公开的技术方案如下:根据本公开实施例的第一方面,提供一种微服务均衡方法,所述方法包括:存储用于执行目标功能中一微服务的服务器地址信息集合,且,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序;接收多个客户端对所述微服务的多个调用请求,并将所述多个调用请求存储至所述微服务对应的调用请求集合中;其中,所述调用请求包括:所述目标功能的已执行时长和预设执行时长;将所述多个调用请求中预设执行时长与已执行时长的差值,作为执行所述目标功能所需的剩余时长;按照执行所述目标功能所需的剩余时长,对所述调用请求集合执行排序操作;基于排序后的调用请求集合以及排序后的服务器地址信息集合,分发所述服务器地址
信息集合中的服务器地址信息,至所述调用请求集合中的调用请求对应的客户端,以供客户端利用服务器地址信息调用所述微服务;其中,服务器地址信息的执行时长与调用请求的剩余时长逆相关。
[0007]其中,所述基于排序后的调用请求集合以及排序后的服务器地址信息集合,分发所述服务器地址信息集合中的服务器地址信息,至所述调用请求集合中的调用请求对应的客户端,包括:分发所述服务器地址信息集合中执行时长最小的服务器地址信息,至所述调用请求集合中剩余时长最大的调用请求对应的客户端;删除所述服务器地址信息集合中执行时长最小的服务器地址信息,以及,删除所述调用请求集合中剩余时长最大的调用请求;在所述微服务的时间片内重复执行上面两个步骤,其中,时间片为服务器发现方预先为微服务设定的时间段;在所述微服务的时间片使用完毕之后,切换至下一个微服务。
[0008]其中,还包括哈希表,哈希表的主键为表示所述微服务的微服务标识,键值与为所述微服务标识对应的所述服务器地址信息集合;其中,所述服务器地址信息集合采用最小堆方式,所述最小堆的多个堆节点表示多个服务器地址信息,且,所述多个堆节点按照服务器对所述微服务的执行时长由小至大排序。
[0009]其中,所述删除所述服务器地址信息集合中执行时长最小的服务器地址信息包括:移除所述最小堆的堆顶,并重新生成最小堆的堆顶。
[0010]其中,还包括:在所述客户端对所述微服务的调用结束后,接收所述客户端发送的服务器地址信息和服务器对所述微服务的最新执行时长;构建与服务器地址信息对应的堆节点,并按最新执行时长、将所述堆节点插入所述最小堆中。
[0011]其中,所述按照执行所述目标功能所需的剩余时长,对所述调用请求集合执行排序操作包括:按照执行所述目标功能所需的剩余时长,对所述调用请求集合中多个调用请求按从大至小排序。
[0012]其中,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序包括:所述服务器地址信息集合按照服务器对所述微服务的执行时长由小至大排序。
[0013]其中,所述已执行时长的字段和所述预设执行时长的字段,设置于所述调用请求中已有的追踪参数中根据本公开实施例的第二方面,提供一种微服务均衡方法,应用于客户端,所述方法包括:接收目标功能的起始时间以及预设执行时长;将当前时间与所述起始时间的差值作为所述目标功能的已执行时长;在客户端调用所述微服务时,构建对所述微服务的调用请求;其中,所述调用请求包括所述目标功能的已执行时长和预设执行时长;向服务发现方发送对目标功能中一微服务的调用请求;
接收所述服务发现方反馈的服务器地址信息;其中,所述服务器地址信息为所述服务发现方从多个不同执行时长的服务器地址信息中,依据所述目标功能所需的剩余时长确定的服务器地址信息,且,服务器地址信息的执行时长与调用请求的剩余时长逆相关;利用所述服务器地址信息对应的服务器执行所述微服务。
[0014]其中,在利用所述服务器地址信息对应的服务器执行所述微服务之后,还包括:在所述客户端对所述微服务调用结束后,将本次服务器对微服务的执行时长作为最新执行时长;发送所述服务器地址信息和服务器对所述微服务的最新执行时长至所述服务发现方。
[0015]根据本公开实施例的第三方面,提供一种微服务均衡装置,包括:存储单元,被配置为存储用于执行目标功能中一微服务的服务器地址信息集合,且,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序;接收单元,被配置为接收多个客户端对所述微服务的多个调用请求,并将所述多个调用请求存储至所述微服务对应的调用请求集合中;其中,所述调用请求包括:所述目标功能的已执行时长和预设执行时长;排序单元,被配置为将所述多个调用请求中预设执行时长与已执行时长的差值,作为执行所述目标功能所需的剩余时长;按照执行所述目标功能所需的剩余时长,对所述调用请求集合执行排序操作;分发单元,被配置为基于排序后的调用请求集合以及排序后的服务器地址信息集合,分发所述服务器地址信息集合中的服务器地址信息,至所述调用请求集合中的调用请求对应的客户端,以供客户端利用服务器地址信息调用所述微服务;其中,服务器地址信息的执行时长与调用请求的剩余时长逆相关。
[0016]其中,所述分发单元,被配置为:分发所述服务器地址信息集合中执行时长最小的服务器地址信息,至所述调用请求集合中剩余时长最大的调用请求对应的客户端;删除所述服务器地址信息集合中执行时长最小的服务器地址信息,以及,删除所述调用请求集合中剩余时长最大的调用请求;在所述微服本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微服务均衡方法,其特征在于,所述方法包括:存储用于执行目标功能中一微服务的服务器地址信息集合,且,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序;接收多个客户端对所述微服务的多个调用请求,并将所述多个调用请求存储至所述微服务对应的调用请求集合中;其中,所述调用请求包括:所述目标功能的已执行时长和预设执行时长;将所述多个调用请求中预设执行时长与已执行时长的差值,作为执行所述目标功能所需的剩余时长;按照执行所述目标功能所需的剩余时长,对所述调用请求集合执行排序操作;基于排序后的调用请求集合以及排序后的服务器地址信息集合,分发所述服务器地址信息集合中的服务器地址信息,至所述调用请求集合中的调用请求对应的客户端,以供客户端利用服务器地址信息调用所述微服务;其中,服务器地址信息的执行时长与调用请求的剩余时长逆相关。2.如权利要求1所述的微服务均衡方法,其特征在于,所述基于排序后的调用请求集合以及排序后的服务器地址信息集合,分发所述服务器地址信息集合中的服务器地址信息,至所述调用请求集合中的调用请求对应的客户端,包括:分发所述服务器地址信息集合中执行时长最小的服务器地址信息,至所述调用请求集合中剩余时长最大的调用请求对应的客户端;删除所述服务器地址信息集合中执行时长最小的服务器地址信息,以及,删除所述调用请求集合中剩余时长最大的调用请求;在所述微服务的时间片内重复执行上面两个步骤,其中,时间片为服务器发现方预先为微服务设定的时间段;在所述微服务的时间片使用完毕之后,切换至下一个微服务。3.如权利要求2所述的微服务均衡方法,其特征在于,采用哈希表存储服务器地址信息集合,哈希表的主键为表示所述微服务的微服务标识,键值与为所述微服务标识对应的所述服务器地址信息集合;其中,所述服务器地址信息集合采用最小堆方式,所述最小堆的多个堆节点表示多个服务器地址信息,且,所述多个堆节点按照服务器对所述微服务的执行时长由小至大排序。4.如权利要求3所述的微服务均衡方法,其特征在于,所述删除所述服务器地址信息集合中执行时长最小的服务器地址信息包括:移除所述最小堆的堆顶,并重新生成最小堆的堆顶。5.如权利要求3所述的微服务均衡方法,其特征在于,还包括:在所述客户端对所述微服务的调用结束后,接收所述客户端发送的服务器地址信息和服务器对所述微服务的最新执行时长;构建与服务器地址信息对应的堆节点,并按最新执行时长、将所述堆节点插入所述最小堆中。6.如权利要求1所述的微服务均衡方法,其特征在于,所述按照执行所述目标功能所需的剩余时长,对所述调用请求集合执行排序操作包括:按照执行所述目标功能所需的剩余时长,对所述调用请求集合中多个调用请求按从大
至小排序。7.如权利要求1所述的微服务均衡方法,其特征在于,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序包括:所述服务器地址信息集合按照服务器对所述微服务的执行时长由小至大排序。8.如权利要求1所述的微服务均衡方法,其特征在于,所述已执行时长的字段和所述预设执行时长的字段,设置于所述调用请求中已有的追踪参数中。9.一种微服务均衡方法,其特征在于,应用于客户端,所述方法包括:接收目标功能的起始时间以及预设执行时长;将当前时间与所述起始时间的差值作为所述目标功能的已执行时长;在客户端调用所述微服务时,构建对所述微服务的调用请求;其中,所述调用请求包括所述目标功能的已执行时长和预设执行时长;向服务发现方发送对目标功能中一微服务的调用请求;接收所述服务发现方反馈的服务器地址信息;其中,所述服务器地址信息为所述服务发现方从多个不同执行时长的服务器地址信息中,依据所述目标功能所需的剩余时长确定的服务器地址信息,且,服务器地址信息的执行时长与调用请求的剩余时长逆相关;利用所述服务器地址信息对应的服务器执行所述微服务。10.如权利要求9所述的微服务均衡方法,其特征在于,在利用所述服务器地址信息对应的服务器执行所述微服务之后,还包括:在所述客户端对所述微服务调用结束后,将本次服务器对微服务的执行时长作为最新执行时长;发送所述服务器地址信息和服务器对所述微服务的最新执行时长至所述服务发现方。11.一种微服务均衡装置,其特征在于,包括:存储单元,被配置为存储用于执行目标功能中一微服务的服务器地址信息集合,且,所述服务器地址信息集合按照服务器对所述微服务的执行时长排序;接收单元,被配置为接收多个客户端对所述微服务的多个调用请求,并将所述多个调用请求存储至所述微服务对应的调用请求集合中;其中,所述调用请求包括:所述目标功能的已执行时长和预设执行时长;排序单元,...

【专利技术属性】
技术研发人员:王健
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

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

1