CN111970198A - 一种服务路由方法、装置、电子设备及介质 - Google Patents

一种服务路由方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN111970198A
CN111970198A CN202010814215.2A CN202010814215A CN111970198A CN 111970198 A CN111970198 A CN 111970198A CN 202010814215 A CN202010814215 A CN 202010814215A CN 111970198 A CN111970198 A CN 111970198A
Authority
CN
China
Prior art keywords
version
instance
specified
list
metadata
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.)
Pending
Application number
CN202010814215.2A
Other languages
English (en)
Inventor
保飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010814215.2A priority Critical patent/CN111970198A/zh
Publication of CN111970198A publication Critical patent/CN111970198A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供了一种服务路由方法、装置、电子设备及介质,涉及云计算微服务技术领域,可以扩大微服务系统的应用场景。本申请实施例的技术方案包括:接收服务请求,然后确定处理服务请求过程中需调用的第二微服务,接着获取第二微服务对应的实例列表。其中,实例列表中包括第二微服务的各版本实例的元数据。再基于第一微服务存储的目标路由规则和实例列表包括的元数据,从实例列表中选择与目标路由规则匹配的版本实例,并调用选择的版本实例。

Description

一种服务路由方法、装置、电子设备及介质
技术领域
本申请涉及微服务技术领域,特别是涉及一种服务路由方法、装置、电子设备及介质。
背景技术
在当前的云计算微服务系统中,包括网关和多个微服务。一个微服务通常存在多种版本,例如,对于一个页面排版微服务,不同的版本对页面的排版样式不同。根据微服务版本的不同,可以将多个微服务划分为多个集群,每个集群包括多个不同的微服务,不同版本的同一微服务被划分至不同集群中。比如,如图1所示,集群1中包括A版本的微服务1和A版本的微服务2。集群2中包括B版本的微服务1和B版本的微服务2。同一集群包括的微服务之间可以相互调用。
结合图1,网关在接收到外网的用户设备发送的用户请求后,将用户请求转发到内网的一个集群中的某个微服务,该微服务接收到网关转发的用户请求后,为了响应用户请求,还可能调用其他微服务。
然而,该微服务只能调用自身所在集群的其他微服务,不能跨集群调用其他版本的微服务,使得微服务系统难以适应复杂的应用场景。例如,某个微服务1需要调用微服务2,微服务1只能调用自身所在集群中的微服务2,无法调用其他集群中其他版本的微服务2。
发明内容
本申请实施例的目的在于提供一种服务路由方法、装置、电子设备及介质,以扩大微服务系统的应用场景。具体技术方案如下:
第一方面,本申请实施例提供了一种服务路由方法,所述方法应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述方法包括:
接收服务请求;
确定处理所述服务请求过程中需调用的第二微服务;
获取所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;
基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。
可选的,所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将所述实例列表中,分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
可选的,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数,所述服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
所述根据各指定数据项的值确定该版本实例的分数,包括:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
可选的,所述目标路由规则包括指定路由谓语;所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语;
从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例。
可选的,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数;
所述针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语,包括:
针对所述实例列表中的每个版本实例,判断所述指定头参数和该版本实例的元数据是否同时满足所述指定路由谓语,若同时满足,则确定该版本实例满足所述指定路由谓语。
可选的,所述从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中满足所述指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
可选的,所述方法还包括:
接收所述云服务器发送的消息更新通知;
响应于所述消息更新通知,从所述云服务器处获取更新后的目标路由规则。
第二方面,本申请实施例提供了一种服务路由装置,所述装置应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述装置包括:
接收模块,用于接收服务请求;
确定模块,用于确定处理所述接收模块接收的所述服务请求过程中需调用的第二微服务;
获取模块,用于获取所述确定模块确定的所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;
选择模块,用于基于所述第一微服务存储的目标路由规则和所述获取模块获取的所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。
可选的,所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将所述实例列表中,分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
可选的,所述获取模块,还用于在所述接收服务请求之后,获取所述服务请求的指定头参数,所述服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
所述选择模块,具体用于:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
可选的,所述目标路由规则包括指定路由谓语;所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语;
从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例。
可选的,所述获取模块,还用于在所述接收服务请求之后,获取所述服务请求的指定头参数;
所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,判断所述指定头参数和该版本实例的元数据是否同时满足所述指定路由谓语,若同时满足,则确定该版本实例满足所述指定路由谓语。
可选的,所述选择模块,具体用于:
针对所述实例列表中满足所述指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
可选的,所述接收模块,还用于接收所述云服务器发送的消息更新通知;
所述获取模块,还用于响应于所述接收模块接收的所述消息更新通知,从所述云服务器处获取更新后的目标路由规则。
第三方面,本申请实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一服务路由方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一服务路由方法的步骤。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一服务路由方法。
本申请实施例的技术方案至少可以带来以下有益效果:当第一微服务确定需要调用第二微服务时,第一微服务可以基于第二微服务对应的实例列表包括的元数据,从实例列表中选择与目标路由规则匹配的版本实例,并调用选择的版本实例。由于第一微服务调用的版本实例是基于第二微服务的各版本实例的元数据,按照目标路由规则选取的,所以本申请实施例中微服务调用的版本实例可以根据路由规则灵活确定,而不是固定的,使得微服务系统的应用场景更广。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为相关技术的服务路由系统结构示意图;
图2为本申请实施例提供的一种服务路由系统结构示意图;
图3为本申请实施例提供的一种服务路由方法流程图;
图4为本申请实施例提供的另一种服务路由方法流程图;
图5为本申请实施例提供的另一种服务路由方法流程图;
图6为本申请实施例提供的另一种服务路由系统结构示意图;
图7为本申请实施例提供的一种服务路由过程的信令图;
图8为本申请实施例提供的一种服务路由装置结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的服务路由方法所涉及的微服务系统如图2所示,该系统包括:网关201和多个微服务,微服务部署在物理机或者虚拟机中。其中:
网关201,用于向内网的微服务转发外网的用户设备205发送的服务请求。
微服务,用于响应服务请求。每个微服务具有不同的版本实例。图2以内网中包括微服务A202、微服务B203和微服务C204为例,每个微服务都具有至少一个版本实例,图2中示例性的示出了每个微服务的3个版本实例。
在本申请实施例中,微服务与网关201之间、各微服务之间可以通信连接。本申请实施例中的微服务系统包括的各设备数量不限于图1所示的数量。
为了扩大微服务系统的应用场景,本申请实施例提供了一种服务路由方法,该方法应用于微服务系统中的第一微服务,第一微服务可以是微服务系统中的任一微服务。如图3所示,该方法包括如下步骤。
步骤301,接收服务请求。
在本申请实施例中,第一微服务接收的服务请求可以是网关向第一微服务转发的,由用户设备发送的请求。或者,第一微服务接收的服务请求可以是其他微服务调用第一微服务时,向第一微服务发送的请求。
步骤302,确定处理服务请求过程中需调用的第二微服务。
在本申请实施例中,第一微服务在响应服务请求时,执行自身的业务逻辑,在执行业务逻辑的过程中,确定需要调用的第二微服务。
例如,微服务1的业务逻辑为计算数据A和数据B的和,在执行业务逻辑时,需要从微服务2中获取数据A和数据B,因此确定微服务2为需要调用的第二微服务。
步骤303,获取第二微服务对应的实例列表。
其中,实例列表中包括第二微服务的各版本实例的元数据。
一种实施方式中,第一微服务可以从注册中心获取第二微服务对应的实例列表。其中,注册中心用于管理各微服务对应的实例列表。例如,注册中心可以是服务发现框架(Eureka)、ZooKeeper或者Consul。其中,ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务;Consul是一种开源工具,主要面向分布式、服务化的系统,用于提供服务注册、服务发现和配置管理的功能。
可选的,针对每个版本实例的元数据,该元数据包括:该版本实例自身的属性信息。例如,属性信息包括:该版本实例所在的服务器为物理机或者虚拟机、该版本实例所在的服务器的带宽、负载、内存占用率等。
可选的,针对每个版本实例的元数据,该元数据还包括:与该版本实例已响应的服务请求相关的参数信息。例如,参数信息包括:已响应的服务请求的发起方标识、已响应的服务请求的发起方所属地区、已响应的服务请求是否响应成功等。其中,服务请求的发起方指的是:发起服务请求的用户设备中的登录用户。
可以理解的,由于各版本实例的元数据是不断变化的,因此每次确定需要调用的第二微服务后,都可以从注册中心获取第二微服务当前对应的实例列表,以保证时效性。
步骤304,基于第一微服务存储的目标路由规则和实例列表包括的元数据,从实例列表中选择与目标路由规则匹配的版本实例,并调用选择的版本实例。
针对每个微服务,该微服务的路由规则为:从需要调用的第二微服务的各版本实例中,选择版本实例的规则。
可选的,目标路由规则可以预先配置在第一微服务的本地配置文件中,第一微服务可以从本地配置文件中获取目标路由规则。或者,目标路由规则可以配置在云服务器中,第一微服务可以接收云服务器下发的目标路由规则。
一种实施方式中,可以基于实例列表包括的元数据,分别确定第二微服务的各实例是否与目标路由规则匹配,当与目标路由规则匹配的实例有多个时,随机选择一个实例,并调用选择的实例。
例如,元数据包括版本实例所在服务器的负载,路由规则为选择负载最小的服务器上运行的版本实例。
本申请实施例的技术方案至少可以带来以下有益效果:当第一微服务确定需要调用第二微服务时,第一微服务可以基于第二微服务对应的实例列表包括的元数据,从实例列表中选择与目标路由规则匹配的版本实例,并调用选择的版本实例。由于第一微服务调用的版本实例是基于第二微服务的各版本实例的元数据,按照目标路由规则选取的,所以本申请实施例中微服务调用的版本实例可以根据路由规则灵活确定,而不是固定的,使得微服务系统的应用场景更广。
在本申请实施例中,第一微服务可以通过以下步骤更新自身存储的目标路由规则。
步骤一,接收云服务器发送的消息更新通知。
在本申请实施例中,云服务器中可以配置有配置中心,配置中心可以管理各微服务的路由规则。进一步的,还可以对各微服务的路由规则统一展示,能够更清晰地展示各微服务之间的调用逻辑。
一种实施方式中,第一微服务通过远程过程调用(RPC,Remote Procedure Call)接口或者观察(watch)方式监听配置中心。在配置中心包括的路由规则更新后,或者在配置中心包括的目标路由规则更新后,第一微服务接收配置中心发送的消息更新通知。
可选的,本申请实施例中的配置中心是管理路由规则的一种模块,也可以是其他能够管理路由规则的模块,本申请实施例对此不作具体限定。
可以理解的,配置中心和微服务之间实现了解耦,微服务不关注配置中心是何种配置管理系统,只要配置中心下发的路由规则符合格式规范,微服务就可以将配置中心下发的路由规则解析为预设的数据结构。例如,符合格式规范的格式可以是另一种标记语言(YAML,YAML Ain't Markup Language)格式或者JS对象简谱(JSON,JavaScript ObjectNotation)格式。
步骤二,响应于消息更新通知,从云服务器处获取更新后的目标路由规则。
一种实施方式中,第一微服务可以从配置中心获取所有的路由规则,再从获取的路由规则中,筛选出第一微服务对应的目标路由规则。或者,第一微服务可以从配置中心获取第一微服务对应的目标路由规则。
可选的,路由规则可以携带微服务标签,第一微服务从各路由规则中,筛选出携带第一微服务标签的路由规则,作为目标路由规则。
本申请实施例的技术方案还可以带来以下有益效果:与将路由规则设置在本地配置文件中的方式相比,由于相关技术中微服务仅能通过冷启动的方式,从本地配置文件中获取路由规则,当本地配置文件中的路由规则更新时,微服务需要重启后,才能获得更新后的路由规则,而重启过程中微服务不能响应服务请求,影响了微服务的可用性。而本申请实施例中可以从云服务器中动态获取路由规则,微服务中的路由规则可以随时更新,更新时不需要重启,提高了微服务的可用性。
而且,配置中心和注册中心均实现了与微服务之间的解耦,对于微服务而言,配置中心和注册中心相当于可插拔式的组件,增强了微服务系统的可扩展能力。
参见图4,在本申请实施例中,上述步骤304选择版本实例的方式包括以下步骤:
步骤401,针对实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数。
在本申请实施例中,第一微服务可以从注册中心获取指定数据项。
例如,指定数据项可以是:微服务所在服务器的中央处理器(CPU,centralprocessing unit)占用率和微服务所在服务器的节点属性。其中,微服务所在服务器的节点属性表示该服务器是物理机还是虚拟机。
一种实施方式中,可以将各指定数据项的值的总和,作为该版本实例的分数;或者还可以将各指定数据项的值的加权和,作为该版本实例的分数。
基于此,可以将目标路由规则设置为打分函数的形式,利用打分函数确定版本实例的分数。例如,打分函数可以为:2×a1+(-1)×a2,其中,2为节点属性权重,a1为版本实例所在服务器的节点属性,服务器是虚拟机时数据项a1的值为0,服务器是物理机时数据项a1的值为1,-1为占用率权重,a2为版本实例所在服务器的CPU占用率。
假设第二微服务的版本实例1所在服务器的节点属性为物理机,CPU占用率为70%。所以版本实例1的分数为:2×1-1×70%=1.3。
假设第二微服务的版本实例2所在服务器的节点属性为虚拟机,CPU占用率为50%。所以版本实例2的分数为:2×0-1×50%=-0.5。
步骤402,将实例列表中,分数最高的版本实例作为与目标路由规则匹配的版本实例。
本申请实施例的技术方案还可以带来以下有益效果:由于本申请实施例中的打分函数可以通过配置中心按照用户需求灵活配置,可以实现在不同的应用场景设置不同的路由规则,提高了服务间路由的灵活性。
在本申请实施例中,在上述步骤301接收到服务请求之后,第一微服务还可以获取服务请求的指定头参数,其中,服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系。可选的,指定头参数基于配置中心下发的目标路由规则确定。例如,假设目标路由规则为将用户名为X的服务请求路由到版本实例1,则指定头参数为服务请求包括的用户名。配置中心管理的各微服务的路由规则,可以由用户通过控制面板配置。
基于此,上述步骤401确定各版本实例的分数的方式,包括以下步骤。
步骤1,针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度。
步骤2,根据各指定数据项对应的匹配程度,确定该版本实例的分数。
一种实施方式中,可以将各指定数据项对应的匹配程度的总和,作为该版本实例的分数;或者,还可以将各指定数据项对应的匹配程度的加权和,作为该版本实例的分数。
结合步骤1和步骤2举例如下。
例如,假设目标路由规则包括的打分函数为Score=Contains(service_detail,Target_A)-Contains(service_detail,Target_B),该打分函数用于表示求版本实例的元数据(service_detail)中包含指定头参数(Target_A)的数量,与元数据(service_detail)中包含指定头参数(Target_B)的数量之间的差值。
假设Target_A为服务请求的请求方所在地区,Target_B为服务请求的请求方会员等级。那么针对每个版本实例,Target_A对应的指定数据项为该版本实例已响应的服务请求的请求方所在地区,Target_B对应的指定数据项为该版本实例已响应的服务请求的请求方会员等级。
假设Target_A为北京,Target_B为2,第二微服务的版本实例1已响应的服务请求的请求方所在地区为:北京、北京、北京、上海;版本实例1已响应的服务请求的请求方会员等级为:1,2,2,1。那么版本实例1的元数据与Target_A的匹配程度为3,元数据与Target_B的匹配程度为2,版本实例1的Score1=3-2=1。
第二微服务的版本实例2已响应的服务请求的请求方所在地区为:北京、上海、上海、上海。版本实例2已响应的服务请求的请求方会员等级为:1,1,2,1。那么版本实例2的元数据与Target_A的匹配程度为1,元数据与Target_B的匹配程度为1,版本实例2的Score2=1-1=0。
又例如,打分函数用于求版本实例对包含指定头参数的服务请求的响应成功率。假设指定头参数为服务请求的发起方标识,那么指定数据项为版本实例已响应的包括该发起方标识的服务请求的成功率。
假设发起方标识为X,第二微服务的版本实例3已响应的服务请求的发起方标识为:X,Y,Y,Y,其中,版本实例3对于包括X的服务请求响应成功。那么版本实例3的元数据与头参数的匹配程度为1,响应成功率为100%,即版本实例3的分数为1。
本申请实施例的技术方案还可以带来以下有益效果:由于可以结合服务请求的指定头参数和版本实例的元数据,选择版本实例,可以实现基于不同的服务请求,选择不同的版本实例,使得服务间的路由规则更加精细化,通过指定头参数和版本实例的元数据选择的版本实例更适用于处理该服务请求。
参见图5,在本申请实施例中,目标路由规则可以包括指定路由谓语。基于此,上述步骤304选择版本实例的方式包括以下步骤。
步骤501,针对实例列表中的每个版本实例,判断该版本实例的元数据是否满足指定路由谓语。
例如,指定路由谓语可以为:
must=virtualMachine,表示无论运行第二微服务的服务器中是否存在虚拟机,一定选择运行在虚拟机上的版本实例,没有则会报错。
must_not=virtualMachine,表示无论运行第二微服务的服务器中是否存在虚拟机,一定不选择运行在虚拟机上的版本实例。
if_exist_must=virtualMachine,表示如果运行第二微服务的服务器中有虚拟机,就选择运行在虚拟机上的版本实例,如果没有虚拟机,就随机选择一个版本实例。
if_exist_must_not=virtualMachine,表示如果运行第二微服务的服务器中存在虚拟机,就不选择运行在虚拟机上的版本实例,而是选择运行在非虚拟机上的版本实例。
as_much_as_possible=virtualMachine,表示无论运行第二微服务的服务器中是否存在虚拟机,都尽可能选择运行在虚拟机上的版本实例。
as_little_as_possible=virtualMachine,表示无论运行第二微服务的服务器中是否存在虚拟机,都尽可能不选择运行在虚拟机上的版本实例。
以指定路由谓语为must=virtualMachine举例,若版本实例1的元数据包括1,表示版本实例1运行在物理机上,那么版本实例1不满足指定路由谓语。若版本实例2的元数据包括0,表示版本实例2运行在虚拟机上,那么版本实例2满足指定路由谓语。
步骤502,从实例列表包括的满足指定路由谓语的实例中,选择一个版本实例作为与目标路由规则匹配的版本实例。
一种实施方式中,若实例列表包括的满足指定路由谓语的实例有多个,可以随机选择一个版本实例作为与目标路由规则匹配的版本实例。
本申请实施例的技术方案还可以带来以下有益效果:由于本申请实施例中的路由谓语可以通过配置中心按照用户需求灵活配置,可以实现在不同的应用场景设置不同的路由规则,提高了服务间路由的灵活性。
在本申请实施例中,在上述步骤301接收服务请求之后,第一微服务还可以获取服务请求的指定头参数。基于此,上述步骤501判断版本实例的元数据是否满足指定路由谓语的方式包括:针对实例列表中的每个版本实例,判断指定头参数和该版本实例的元数据是否同时满足指定路由谓语,若同时满足,则确定该版本实例满足指定路由谓语。
例如,指定路由谓语为:当头参数为X时,must=virtualMachine。假设指定头参数为X,第二微服务的版本实例1的元数据包括0,表示版本实例1运行在虚拟机上,则指定头参数和版本实例1的元数据同时满足指定路由谓语。
假设指定头参数为X,第二微服务的版本实例2的元数据包括1,表示版本实例2运行在物理机上,则指定头参数和版本实例2的元数据不同时满足指定路由谓语。
本申请实施例的技术方案还可以带来以下有益效果:由于可以结合服务请求的指定头参数和版本实例的元数据,选择版本实例,可以实现基于不同的服务请求,选择不同的版本实例,使得服务间的路由规则更加精细化,通过指定头参数和版本实例的元数据选择的版本实例更适用于处理该服务请求。
在本申请实施例中,指定路由规则可以包括打分函数和路由谓语。基于此,上述步骤502选择版本实例的方式包括以下步骤。
步骤(1),针对实例列表中满足指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数。
步骤(1)确定版本实例分数的方法与上述步骤401确定版本实例的分数的方法相同,可以参见上文中的相关描述,此处不再赘述。
步骤(2),选择分数最高的版本实例作为与目标路由规则匹配的版本实例。
例如,指定路由谓语为must=virtualMachine,第二微服务的版本实例1和版本实例2的元数据均包括0,表示运行在虚拟机上,所以版本实例1和版本实例2都满足指定路由谓语。假设打分函数用于衡量版本实例所在服务器的内存大小,内存越大,分数越高。假设版本实例1所在服务器的内存大于版本实例2所在服务器的内存,所以版本实例1的分数比版本实例2的分数高,选择版本实例1。
本申请实施例的技术方案还可以带来以下有益效果:将打分函数与路由谓词结合,使得服务间路由规则更加精细化。而且打分函数和路由规则可以通过配置中心灵活配置,对于不同的场景具备更强的适应性。
为了更清楚的解释本申请实施例的技术方案,以下示例性的提供一种微服务系统示意图。参见图6,本申请实施例涉及的微服务系统如图6所示,微服务系统包括:网关601、微服务A602、微服务B603、配置中心604、控制面板605、注册中心606。其中:
网关601,用于将外网的用户设备607发送的服务请求,转发到内网的微服务。例如,图6中网关601将用户设备607发送的服务请求转发到微服务A602。
微服务,用于响应服务请求。以微服务A602为例,微服务A602中设置有前置拦截器6021、逻辑执行模块6022和后置拦截器6023。
其中,前置拦截器6021用于提取接收到的服务请求中的指定头参数;逻辑执行模块6022用于执行微服务自身的业务逻辑,并确定执行业务逻辑所需要调用的第二微服务,假设第二微服务为微服务B603。后置拦截器6023用于从注册中心606获取微服务B603对应的实例列表,并根据指定头参数以及实例列表包括的元数据,从实例列表中选择与配置中心604下发的目标路由规则匹配的版本实例,并调用选择的版本实例。
图6中示例性的示出了两个微服务,分别为微服务A602和微服务B603。微服务B603的三个版本均可以被微服务A602调用。
配置中心604,部署在云服务器中,用于管理微服务系统中各微服务的路由规则。
控制面板605,部署在云服务器中,用于接收用户为微服务系统中各微服务配置的路由规则,并向配置中心604提供用户配置的路由规则。
注册中心606,部署在云服务中,用于管理微服务系统中各微服务的版本实例的元数据。
配置中心604、控制面板605、注册中心606可以部署在同一个云服务中,也可以部署在不同的云服务中,本申请实施例对此不作具体限定。
结合图6,如图7所示,本申请实施例提供的服务路由方法包括如下步骤。
步骤701,配置中心获取用户通过控制面板为微服务A配置的目标路由规则。
步骤702,配置中心向微服务A发送消息更新通知。
步骤703,微服务A从配置中心获取更新后的目标路由规则。
一种实施方式中,微服务A可以在获取到更新后的目标路由规则后,利用更新后的目标路由规则替换后置拦截器中的原目标路由规则。替换后,后置拦截器中的目标路由规则即刻生效。
步骤704,网关向微服务A转发用户设备发送的服务请求。
步骤705,微服务A的前置拦截器获取服务请求的指定头参数。
可选的,获取指定头参数后,可以将头参数放入线程局部变量(ThreadLocal)中。ThreadLocal可以起到线程隔离的作用,隔离微服务A从不同服务请求中提取的参数。
步骤705获取指定头参数的方法与上文中介绍的获取指定头参数的方法相同,可参考上文中的相关描述,此处不再赘述。
步骤706,微服务A的逻辑执行模块执行自身的业务逻辑,并确定需要调用的微服务B。
步骤707,微服务A的后置拦截器从注册中心获取微服务B对应的实例列表。
步骤708,微服务A根据指定头参数和微服务B的各版本实例的元数据,从实例列表中选择与目标路由规则匹配的版本实例。
可选的,微服务A可以从ThreadLocal中获取从该服务请求中提取的头参数。
步骤708选择版本实例的方法与上文中介绍的选择版本实例的方法相同,可参考上文中的相关描述,此处不再赘述。
步骤709,微服务A调用选择的版本实例。
本申请实施例的技术方案还可以带来以下有益效果:与利用网关实现微服务间路由的方式相比,如果微服务间路由规则过于庞杂,会加重网关负载,影响网关稳定性。而且网关中配置复杂的路由规则,会拖慢微服务系统的运行速度,使得网关成为微服务系统瓶颈,还存在单点故障问题,一旦网关宕机,会影响整个微服务系统中设备间的通信。
而本申请实施例中每个微服务自行确定自己的路由,不需要通过网关,在减轻了网关负载的同时,即使网关宕机也不会影响服务间的通信,缓解了单点故障问题。
基于相同的申请构思,对应于上述方法实施例,如图8所示,本申请实施例提供了一种服务路由装置,装置应用于微服务系统中的第一微服务,微服务系统中包括多个微服务,每个微服务具有不同版本实例,该装置包括:接收模块801、确定模块802、获取模块803和选择模块804;
接收模块801,用于接收服务请求;
确定模块802,用于确定处理接收模块801接收的服务请求过程中需调用的第二微服务;
获取模块803,用于获取确定模块802确定的第二微服务对应的实例列表,实例列表中包括第二微服务的各版本实例的元数据;
选择模块804,用于基于第一微服务存储的目标路由规则和获取模块803获取的实例列表包括的元数据,从实例列表中选择与目标路由规则匹配的版本实例,并调用选择的版本实例。
可选的,选择模块804,具体用于:
针对实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将实例列表中,分数最高的版本实例作为与目标路由规则匹配的版本实例。
可选的,获取模块803,还用于在接收服务请求之后,获取服务请求的指定头参数,服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
选择模块804,具体用于:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
可选的,目标路由规则包括指定路由谓语;选择模块804,具体用于:
针对实例列表中的每个版本实例,判断该版本实例的元数据是否满足指定路由谓语;
从实例列表包括的满足指定路由谓语的版本实例中,选择一个版本实例作为与目标路由规则匹配的版本实例。
可选的,获取模块803,还用于在接收服务请求之后,获取服务请求的指定头参数;
选择模块804,具体用于:
针对实例列表中的每个版本实例,判断指定头参数和该版本实例的元数据是否同时满足指定路由谓语,若同时满足,则确定该版本实例满足指定路由谓语。
可选的,选择模块804,具体用于:
针对实例列表中满足指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与目标路由规则匹配的版本实例。
可选的,接收模块801,还用于接收云服务器发送的消息更新通知;
获取模块803,还用于响应于接收模块接收的消息更新通知,从云服务器处获取更新后的目标路由规则。
本申请实施例还提供了一种服务器,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现上述方法实施例中的方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一服务路由方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一服务路由方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (16)

1.一种服务路由方法,其特征在于,所述方法应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述方法包括:
接收服务请求;
确定处理所述服务请求过程中需调用的第二微服务;
获取所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;
基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将所述实例列表中,分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
3.根据权利要求2所述的方法,其特征在于,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数,所述服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
所述根据各指定数据项的值确定该版本实例的分数,包括:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
4.根据权利要求1所述的方法,其特征在于,所述目标路由规则包括指定路由谓语;所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语;
从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例。
5.根据权利要求4所述的方法,其特征在于,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数;
所述针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语,包括:
针对所述实例列表中的每个版本实例,判断所述指定头参数和该版本实例的元数据是否同时满足所述指定路由谓语,若同时满足,则确定该版本实例满足所述指定路由谓语。
6.根据权利要求4或5所述的方法,其特征在于,所述从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中满足所述指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述云服务器发送的消息更新通知;
响应于所述消息更新通知,从所述云服务器处获取更新后的目标路由规则。
8.一种服务路由装置,其特征在于,所述装置应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述装置包括:
接收模块,用于接收服务请求;
确定模块,用于确定处理所述接收模块接收的所述服务请求过程中需调用的第二微服务;
获取模块,用于获取所述确定模块确定的所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;
选择模块,用于基于所述第一微服务存储的目标路由规则和所述获取模块获取的所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。
9.根据权利要求8所述的装置,其特征在于,所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将所述实例列表中,分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
10.根据权利要求9所述的装置,其特征在于,
所述获取模块,还用于在所述接收服务请求之后,获取所述服务请求的指定头参数,所述服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
所述选择模块,具体用于:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
11.根据权利要求8所述的装置,其特征在于,所述目标路由规则包括指定路由谓语;所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语;
从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例。
12.根据权利要求11所述的装置,其特征在于,
所述获取模块,还用于在所述接收服务请求之后,获取所述服务请求的指定头参数;
所述选择模块,具体用于:
针对所述实例列表中的每个版本实例,判断所述指定头参数和该版本实例的元数据是否同时满足所述指定路由谓语,若同时满足,则确定该版本实例满足所述指定路由谓语。
13.根据权利要求11或12所述的装置,其特征在于,所述选择模块,具体用于:
针对所述实例列表中满足所述指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
14.根据权利要求8所述的装置,其特征在于,
所述接收模块,还用于接收所述云服务器发送的消息更新通知;
所述获取模块,还用于响应于所述接收模块接收的所述消息更新通知,从所述云服务器处获取更新后的目标路由规则。
15.一种服务器,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
CN202010814215.2A 2020-08-13 2020-08-13 一种服务路由方法、装置、电子设备及介质 Pending CN111970198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010814215.2A CN111970198A (zh) 2020-08-13 2020-08-13 一种服务路由方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010814215.2A CN111970198A (zh) 2020-08-13 2020-08-13 一种服务路由方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN111970198A true CN111970198A (zh) 2020-11-20

Family

ID=73365987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010814215.2A Pending CN111970198A (zh) 2020-08-13 2020-08-13 一种服务路由方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN111970198A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532523A (zh) * 2020-11-23 2021-03-19 福建顶点软件股份有限公司 一种基于子服务路由的进程内调度方法和存储设备
CN112565093A (zh) * 2020-12-11 2021-03-26 山东大学 一种基于内存数据库实现微服务路由动态变更的方法、存储介质
CN112737952A (zh) * 2020-12-28 2021-04-30 天使方舟有限公司 一种fpga业务应用层信息路由模型及其监控平台
CN112799682A (zh) * 2021-04-13 2021-05-14 杭州太美星程医药科技有限公司 一种数据采集与处理系统及其运行多版本应用的方法
CN112860437A (zh) * 2021-02-22 2021-05-28 北京罗克维尔斯科技有限公司 微服务处理方法和装置
CN113220484A (zh) * 2021-05-11 2021-08-06 上海安畅网络科技股份有限公司 一种微服务调用方法、装置、电子设备及存储介质
CN113760301A (zh) * 2020-12-30 2021-12-07 京东数科海益信息科技有限公司 一种微服务应用部署方法、装置、设备及存储介质
CN114021058A (zh) * 2021-11-09 2022-02-08 成都长虹网络科技有限责任公司 前端页面的样式管理方法、装置、计算机设备及存储介质
CN114584628A (zh) * 2022-01-25 2022-06-03 北京达佳互联信息技术有限公司 请求处理方法、装置、服务器及存储介质
CN114584451A (zh) * 2022-01-18 2022-06-03 北京智象信息技术有限公司 一种基于微服务环境调试内部服务接口的方法及装置
CN115102854A (zh) * 2022-07-21 2022-09-23 康键信息技术(深圳)有限公司 微服务的远程过程调用路由管理控制方法、系统及设备
CN115858013A (zh) * 2023-02-27 2023-03-28 厦门立林科技有限公司 一种多研发项目并行的资源配置方法、系统、装置及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102717A1 (en) * 2017-09-29 2019-04-04 At&T Intellectual Property I, L.P. Microservice auto-scaling for achieving service level agreements
CN109995713A (zh) * 2017-12-30 2019-07-09 华为技术有限公司 一种微服务框架中的服务处理方法及相关设备
CN110716815A (zh) * 2019-10-11 2020-01-21 集奥聚合(北京)人工智能科技有限公司 基于Spring Gateway的微服务各版本定向调用方法
CN110837424A (zh) * 2019-10-15 2020-02-25 东软集团股份有限公司 服务实例确定方法、装置、存储介质及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102717A1 (en) * 2017-09-29 2019-04-04 At&T Intellectual Property I, L.P. Microservice auto-scaling for achieving service level agreements
CN109995713A (zh) * 2017-12-30 2019-07-09 华为技术有限公司 一种微服务框架中的服务处理方法及相关设备
CN110716815A (zh) * 2019-10-11 2020-01-21 集奥聚合(北京)人工智能科技有限公司 基于Spring Gateway的微服务各版本定向调用方法
CN110837424A (zh) * 2019-10-15 2020-02-25 东软集团股份有限公司 服务实例确定方法、装置、存储介质及电子设备

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532523A (zh) * 2020-11-23 2021-03-19 福建顶点软件股份有限公司 一种基于子服务路由的进程内调度方法和存储设备
CN112565093A (zh) * 2020-12-11 2021-03-26 山东大学 一种基于内存数据库实现微服务路由动态变更的方法、存储介质
CN112737952A (zh) * 2020-12-28 2021-04-30 天使方舟有限公司 一种fpga业务应用层信息路由模型及其监控平台
CN112737952B (zh) * 2020-12-28 2022-08-26 Gotcex 有限公司 一种fpga业务应用层信息路由模型及其监控平台
CN113760301B (zh) * 2020-12-30 2024-05-17 京东科技信息技术有限公司 一种微服务应用部署方法、装置、设备及存储介质
CN113760301A (zh) * 2020-12-30 2021-12-07 京东数科海益信息科技有限公司 一种微服务应用部署方法、装置、设备及存储介质
CN112860437B (zh) * 2021-02-22 2023-10-03 北京罗克维尔斯科技有限公司 微服务处理方法和装置
CN112860437A (zh) * 2021-02-22 2021-05-28 北京罗克维尔斯科技有限公司 微服务处理方法和装置
CN112799682A (zh) * 2021-04-13 2021-05-14 杭州太美星程医药科技有限公司 一种数据采集与处理系统及其运行多版本应用的方法
CN113220484A (zh) * 2021-05-11 2021-08-06 上海安畅网络科技股份有限公司 一种微服务调用方法、装置、电子设备及存储介质
CN114021058A (zh) * 2021-11-09 2022-02-08 成都长虹网络科技有限责任公司 前端页面的样式管理方法、装置、计算机设备及存储介质
CN114584451A (zh) * 2022-01-18 2022-06-03 北京智象信息技术有限公司 一种基于微服务环境调试内部服务接口的方法及装置
CN114584451B (zh) * 2022-01-18 2023-10-17 北京智象信息技术有限公司 一种基于微服务环境调试内部服务接口的方法及装置
CN114584628A (zh) * 2022-01-25 2022-06-03 北京达佳互联信息技术有限公司 请求处理方法、装置、服务器及存储介质
CN114584628B (zh) * 2022-01-25 2024-03-26 北京达佳互联信息技术有限公司 请求处理方法、装置、服务器及存储介质
CN115102854B (zh) * 2022-07-21 2024-05-14 康键信息技术(深圳)有限公司 微服务的远程过程调用路由管理控制方法、系统及设备
CN115102854A (zh) * 2022-07-21 2022-09-23 康键信息技术(深圳)有限公司 微服务的远程过程调用路由管理控制方法、系统及设备
CN115858013A (zh) * 2023-02-27 2023-03-28 厦门立林科技有限公司 一种多研发项目并行的资源配置方法、系统、装置及介质

Similar Documents

Publication Publication Date Title
CN111970198A (zh) 一种服务路由方法、装置、电子设备及介质
US10432460B2 (en) Network service scaling method and apparatus
CN110119292B (zh) 系统运行参数查询方法、匹配方法、装置及节点设备
US20170346676A1 (en) Alarm correlation in network function virtualization environment
WO2017173928A1 (zh) 业务处理系统、业务处理方法以及业务更新方法
CN109885786B (zh) 数据缓存处理方法、装置、电子设备及可读存储介质
WO2021151312A1 (zh) 一种确定服务间依赖关系的方法及相关装置
CN110442610A (zh) 负载均衡的方法、装置、计算设备以及介质
CN111427701A (zh) 一种工作流引擎系统和业务处理方法
CN114189525B (zh) 服务请求方法、装置和电子设备
WO2017045450A1 (zh) 资源的操作处理方法及装置
CN104166738A (zh) 数据库查询处理的方法及装置
CN111312352A (zh) 一种基于区块链的数据处理方法、装置、设备和介质
WO2017140098A1 (zh) 一种作者关注方法、终端、服务器和系统
CN106462638A (zh) 基于流的反应性编程平台
CN110321252B (zh) 一种技能服务资源调度的方法和装置
CN113779422B (zh) 关系链标签的实现方法、装置、电子设备及存储介质
CN110046178A (zh) 分布式数据查询的方法和装置
CN114401319A (zh) 一种请求处理方法、装置、服务器及存储介质
CN110727507A (zh) 一种消息的处理方法、装置、计算机设备和存储介质
US20170139808A1 (en) Method and dispatcher node for server processing management
CN110417741B (zh) 一种过滤安全组的方法和装置
CN111382953A (zh) 一种动态流程生成方法和装置
CN111814091B (zh) 消息分发方法及相关装置
CN113360689A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201120

RJ01 Rejection of invention patent application after publication