【技术实现步骤摘要】
一种服务路由方法、装置、电子设备及介质
本申请涉及微服务
,特别是涉及一种服务路由方法、装置、电子设备及介质。
技术介绍
在当前的云计算微服务系统中,包括网关和多个微服务。一个微服务通常存在多种版本,例如,对于一个页面排版微服务,不同的版本对页面的排版样式不同。根据微服务版本的不同,可以将多个微服务划分为多个集群,每个集群包括多个不同的微服务,不同版本的同一微服务被划分至不同集群中。比如,如图1所示,集群1中包括A版本的微服务1和A版本的微服务2。集群2中包括B版本的微服务1和B版本的微服务2。同一集群包括的微服务之间可以相互调用。结合图1,网关在接收到外网的用户设备发送的用户请求后,将用户请求转发到内网的一个集群中的某个微服务,该微服务接收到网关转发的用户请求后,为了响应用户请求,还可能调用其他微服务。然而,该微服务只能调用自身所在集群的其他微服务,不能跨集群调用其他版本的微服务,使得微服务系统难以适应复杂的应用场景。例如,某个微服务1需要调用微服务2,微服务1只能调用自身所在集群中的微服务2,无法调 ...
【技术保护点】
1.一种服务路由方法,其特征在于,所述方法应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述方法包括:/n接收服务请求;/n确定处理所述服务请求过程中需调用的第二微服务;/n获取所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;/n基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。/n
【技术特征摘要】
1.一种服务路由方法,其特征在于,所述方法应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务,每个微服务具有不同版本实例,所述方法包括:
接收服务请求;
确定处理所述服务请求过程中需调用的第二微服务;
获取所述第二微服务对应的实例列表,所述实例列表中包括所述第二微服务的各版本实例的元数据;
基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,并调用选择的版本实例。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
将所述实例列表中,分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
3.根据权利要求2所述的方法,其特征在于,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数,所述服务请求的指定头参数与版本实例的元数据包括的指定数据项之间具有一一对应关系;
所述根据各指定数据项的值确定该版本实例的分数,包括:
针对该版本实例的元数据中的每个指定数据项,计算该指定数据项的值与该指定数据项对应的指定头参数之间的匹配程度;
根据各指定数据项对应的匹配程度,确定该版本实例的分数。
4.根据权利要求1所述的方法,其特征在于,所述目标路由规则包括指定路由谓语;所述基于所述第一微服务存储的目标路由规则和所述实例列表包括的元数据,从所述实例列表中选择与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语;
从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例。
5.根据权利要求4所述的方法,其特征在于,在所述接收服务请求之后,所述方法还包括:
获取所述服务请求的指定头参数;
所述针对所述实例列表中的每个版本实例,判断该版本实例的元数据是否满足所述指定路由谓语,包括:
针对所述实例列表中的每个版本实例,判断所述指定头参数和该版本实例的元数据是否同时满足所述指定路由谓语,若同时满足,则确定该版本实例满足所述指定路由谓语。
6.根据权利要求4或5所述的方法,其特征在于,所述从所述实例列表中满足所述指定路由谓语的版本实例中,选择一个版本实例作为与所述目标路由规则匹配的版本实例,包括:
针对所述实例列表中满足所述指定路由谓语的每个版本实例,从该版本实例的元数据中获取各指定数据项的值,并根据各指定数据项的值确定该版本实例的分数;
选择分数最高的版本实例作为与所述目标路由规则匹配的版本实例。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述云服务器发送的消息更新通知;
响应于所述消息更新通知,从所述云服务器处获取更新后的目标路由规则。
8.一种服务路由装置,其特征在于,所述装置应用于微服务系统中的第一微服务,所述微服务系统中包括多个微服务...
【专利技术属性】
技术研发人员:保飞,
申请(专利权)人:北京金山云网络技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。