Nothing Special   »   [go: up one dir, main page]

CN113726902A - 微服务的调用方法及系统 - Google Patents

微服务的调用方法及系统 Download PDF

Info

Publication number
CN113726902A
CN113726902A CN202111028725.8A CN202111028725A CN113726902A CN 113726902 A CN113726902 A CN 113726902A CN 202111028725 A CN202111028725 A CN 202111028725A CN 113726902 A CN113726902 A CN 113726902A
Authority
CN
China
Prior art keywords
micro
service
list
rewriting
microservice
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.)
Granted
Application number
CN202111028725.8A
Other languages
English (en)
Other versions
CN113726902B (zh
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.)
Mashang Consumer Finance Co Ltd
Original Assignee
Mashang Consumer Finance 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 Mashang Consumer Finance Co Ltd filed Critical Mashang Consumer Finance Co Ltd
Priority to CN202111028725.8A priority Critical patent/CN113726902B/zh
Publication of CN113726902A publication Critical patent/CN113726902A/zh
Application granted granted Critical
Publication of CN113726902B publication Critical patent/CN113726902B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种微服务的调用方法及系统,当方法应用于注册中心服务器时,包括:响应于主机发起的微服务获取请求,确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务,对获取到的微服务列表进行改写处理,得到微服务改写列表,微服务改写列表可被网关设备直接解析,将微服务改写列表反馈给主机,微服务改写列表用于基于网关设备调取微服务,无需在主机的本地内存中存储经注册中心服务器的全量的微服务的信息,避免了存储资源消耗的弊端,实现了降低调用时长,提高调用效率的技术效果。

Description

微服务的调用方法及系统
技术领域
本申请实施例涉及云计算技术领域,尤其涉及一种微服务的调用方法及系统。
背景技术
微服务是在传统软件应用架构基础之上,按照业务能力将系统拆分成得到的服务,一个微服务对应多个实例,一个微服务可以为一个独立适用的方案,不同的微服务之间可以相互调用,微服务之间的调用基于流量控制(如流量转发)实现。
在现有技术中,微服务的调用方法包括:当源主机的源微服务需要调用目标主机上的目标微服务时,源主机读取其本地缓存,在其存储的已注册的微服务列表中查询并目标微服务的地址和端口号等调用地址信息,并基于调用地址信息执行对目标微服务的远程调用。
然而,采用上述方式,对源主机的存储资源的消耗较大,尤其当微服务数量的规模比较大时,容易造成调用时间长、效率偏低的技术问题。
发明内容
本申请实施例提供一种微服务的调用方法及系统,用以解决存储资源消耗较大的技术问题。
第一方面,本申请实施例提供一种微服务的调用方法,应用于注册中心服务器,所述方法包括:
响应于主机发起的微服务获取请求,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
对获取到的所述微服务列表进行改写处理,得到微服务改写列表,所述微服务改写列表可被网关设备直接解析;
将所述微服务改写列表反馈给所述主机,所述微服务改写列表用于基于所述网关设备调取所述微服务。
在一些实施例中,对获取到的所述微服务列表进行改写处理,得到微服务改写列表,包括:
响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求;
对所述微服务列表进行改写处理,得到所述微服务改写列表。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述改写信息是基于微服务的注册请求生成的。
在一些实施例中,还包括:
接收所述网关设备转发的针对所述微服务的注册请求,并根据所述注册请求确定并存储所述微服务的微服务列表。
第二方面,本申请实施例提供一种微服务的调用方法,应用于网关设备,所述方法包括:
接收主机发送的微服务改写列表,其中,所述微服务改写列表为对微服务列表进行改写处理后得到的,所述微服务列表是基于主机发起的微服务获取请求所确定的,与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
根据所述微服务改写列表,调用所述微服务,其中,所述微服务改写列表可被网关设备直接解析。
在一些实施例中,还包括:
响应于获取针对所述微服务的注册请求,生成改写信息,并将所述改写信息存储至预设集群设备,所述改写信息是用于指示所述微服务可基于所述网关设备调用的信息。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述微服务包括多个微服务实例,所述微服务改写列表中包括每一所述微服务实例的调用地址;根据所述微服务改写列表,调用所述微服务,包括:
对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;
根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量,以调用所述微服务。
在一些实施例中,对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,包括:
确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
在一些实施例中,还包括:
获取针对所述微服务的注册请求,并根据所述第一映射关系为所述微服务中的每一微服务实例配置实例标签;
将所述注册请求转发至所述注册中心服务器,所述注册请求用于完成对所述微服务的注册。
在一些实施例中,还包括:
响应于所述微服务的迁移指示,根据所述迁移指示对所述第一映射关系进行更新。
在一些实施例中,还包括:
根据针对所述微服务的注册请求,确定所述微服务的微服务列表,并根据所述微服务列表与所述改写信息,构建所述微服务列表与所述微服务改写列表之间的第二映射关系;
以及,根据所述微服务改写列表,调用所述微服务,包括:根据所述微服务改写列表和所述第二映射关系,调用所述微服务。
第三方面,本申请实施例提供一种微服务的调用方法,应用于主机,所述方法包括:
向注册中心服务器发送微服务获取请求,所述微服务获取请求用于确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
接收所述注册中心服务器发送的微服务改写列表,所述微服务改写列表为对所述微服务列表进行改写处理得到的,其中,所述微服务改写列表可被网关设备可直接解析;
将所述微服务改写列表发送给网关设备,所述微服务改写列表用于基于所述网关设备调取所述微服务。
在一些实施例中,所述微服务改写列表是:响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,并对所述微服务列表进行改写处理得到的,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述微服务包括多个微服务实例,所述微服务列表中包括每一所述微服务实例的调用地址;所述微服务是对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,并根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量调用的。
在一些实施例中,每一所述微服务实例的流量分配信息是:确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配得到的;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
第四方面,本申请实施例提供一种注册中心服务器,包括:
第一确定单元,用于响应于主机发起的微服务获取请求,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
改写单元,用于对获取到的所述微服务列表进行改写处理,得到微服务改写列表,所述微服务改写列表可被网关设备直接解析;
反馈单元,用于将所述微服务改写列表反馈给所述主机,所述微服务改写列表用于基于所述网关设备调取所述微服务。
在一些实施例中,所述改写单元,包括:
获取子单元,用于响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求;
改写子单元,用于对所述微服务列表进行改写处理,得到所述微服务改写列表。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述改写信息是基于微服务的注册请求生成的。
在一些实施例中,还包括:
第一接收单元,用于接收所述网关设备转发的针对所述微服务的注册请求;
第二确定单元,用于根据所述注册请求确定并存储所述微服务的微服务列表。
第五方面,本申请实施例提供一种网关设备,包括:
第二接收单元,用于接收主机发送的微服务改写列表,其中,所述微服务改写列表为对微服务列表进行改写处理后得到的,所述微服务列表是基于主机发起的微服务获取请求所确定的,与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
调用单元,用于根据所述微服务改写列表,调用所述微服务,其中,所述微服务改写列表可被网关设备直接解析。
在一些实施例中,还包括:
生成单元,用于响应于获取针对所述微服务的注册请求,生成改写信息,所述改写信息是用于指示所述微服务可基于所述网关设备调用的信息;
存储单元,用于将所述改写信息存储至预设集群设备。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述微服务包括多个微服务实例,所述微服务改写列表中包括每一所述微服务实例的调用地址;所述调用单元,包括:
分配子单元,用于对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;
调用子单元,用于根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量,以调用所述微服务。
在一些实施例中,所述调用子单元用于,确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
在一些实施例中,还包括:
获取单元,用于获取针对所述微服务的注册请求;
配置单元,用于根据所述第一映射关系为所述微服务中的每一微服务实例配置实例标签;
转发单元,用于将所述注册请求转发至所述注册中心服务器,所述注册请求用于完成对所述微服务的注册。
在一些实施例中,所述调用单元还包括:
更新子单元,用于响应于所述微服务的迁移指示,根据所述迁移指示对所述第一映射关系进行更新。
在一些实施例中,还包括:
第三确定单元,用于根据针对所述微服务的注册请求,确定所述微服务的微服务列表;
构建单元,用于根据所述微服务列表与所述改写信息,构建所述微服务列表与所述微服务改写列表之间的第二映射关系;
以及,所述调用单元用于,根据所述微服务改写列表和所述第二映射关系,调用所述微服务。
第六方面,本申请实施例提供一种主机,包括:
第一发送单元,用于向注册中心服务器发送微服务获取请求,所述微服务获取请求用于确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
第三接收单元,用于接收所述注册中心服务器发送的微服务改写列表,所述微服务改写列表为对所述微服务列表进行改写处理得到的,其中,所述微服务改写列表可被网关设备可直接解析;
第二发送单元,用于将所述微服务改写列表发送给网关设备,所述微服务改写列表用于基于所述网关设备调取所述微服务。
在一些实施例中,所述微服务改写列表是:响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,并对所述微服务列表进行改写处理得到的,其中,所述改写信息用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述微服务包括多个微服务实例,所述微服务列表中包括每一所述微服务实例的调用地址;所述微服务是对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,并根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量调用的。
在一些实施例中,每一所述微服务实例的流量分配信息是:确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配得到的;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
第七方面,本申请实施例提供一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如第一方面所述的方法;或者,所述处理器被配置为执行如第二方面所述的方法;或者,所述处理器被配置为执行如第三方面所述的方法。
第八方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法;或者,所述计算机执行指令被处理器执行时用于实现如第二方面所述的方法;或者,所述计算机执行指令被处理器执行时用于实现如第三方面所述的方法。
第九方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法;或者,所述计算机程序在被处理器执行时实现根据第二方面所述的方法;或者,所述计算机程序在被处理器执行时实现根据第三方面所述的方法。
第十方面,本申请实施例提供一种微服务的调用系统,包括:
如第四方面所述的注册中心服务器;
如第五方面所述的网关设备;
如第六方面所述的主机。
本申请实施例提供的微服务的调用方法及系统,当方法应用于注册中心服务器时,包括:响应于主机发起的微服务获取请求,确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务,对获取到的微服务列表进行改写处理,得到微服务改写列表,微服务改写列表可被网关设备直接解析,将微服务改写列表反馈给主机,微服务改写列表用于基于网关设备调取微服务,在本实施例中,引入了:由注册中心服务器对微服务列表进行改写,并将改写得到的微服务改写列表传输给主机,以便主机基于微服务改写列表实现对微服务的调用的技术特征,无需在主机的本地内存中存储经注册中心服务器的全量的微服务的信息,避免了存储资源消耗的弊端,实现了降低调用时长,提高调用效率的技术效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例的微服务的调用方法的应用场景示意图;
图2为本申请一个实施例的微服务的调用方法的示意图;
图3为本申请另一实施例的微服务的调用方法的示意图;
图4为本申请另一实施例的微服务的调用方法的示意图;
图5为本申请另一实施例的微服务的调用方法的示意图;
图6为本申请一个实施例的注册中心服务器的示意图;
图7为本申请另一实施例的注册中心服务器的示意图;
图8为本申请一个实施例的网关设备的示意图;
图9为本申请另一实施例的网关设备的示意图;
图10为本申请一个实施例的主机的示意图;
图11为根据本申请实施例的微服务的调用方法的电子设备的框图;
图12为根据本申请实施例的微服务的调用系统的示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
随着互联网的快速发展,对互联网技术(IT)系统的高可用性、业务连续性提出了更好的要求,单机房的IT系统逐渐转换为“同城双活”、“异地双活”,甚至“异地多活”等多个互联网数据中心(Internet Data Center,IDC)机房的IT系统,以更好的保障IT系统的高可用。
本实施例的微服务的调用方法可以应用于单机房的IT系统的场景,例如,本实施例的微服务的调用方法可以应用于在同一机房内,对部署于不同主机上的微服务进行调用的场景。
本实施例的微服务的调用方法也可以应用于多个机房的IT系统的场景,例如,本实施例的微服务的调用方法可以应用于在不同机房内,对部署于不同机房的主机上的微服务进行调用的场景。
示例性地,图1为本申请实施例的微服务的调用方法可以应用于多个机房的IT系统的场景的示意图。
如图1所示,机房N和机房M为不同的两个机房,机房N和机房M可以为同城部署的两个机房,也可以为异地部署的两个机房。
其中,机房N中包括N1至Nn个主机。机房M中包括M1至Mm个主机。
机房N中的任一主机上部署的微服务,可以调用机房M中任一主机上部署的微服务。同理,机房M中的任一主机上部署的微服务,也可以调用机房N任一主机上部署的微服务。
应用理解地是,微服务需经过注册形成,微服务的注册是经由注册中心服务器(Eurekaserver)完成,注册中心服务器在对微服务进行注册时,可以对微服务的信息进行存储,从而得到微服务列表。
在相关技术中,每一主机均可以从注册中心服务器中获取微服务列表,并将微服务列表存储至本地内存中。也就是说,在相关技术中,每一主机中存储有已经注册的全量的微服务的信息。
当某主机(可以称为源主机)上部署的微服务需要调用另一主机上(可以称为目标主机)部署的微服务时,可以通过查询源主机本地内存中的微服务列表,以确定相应的调用地址信息,并基于调用地址信息实现对目标主机上部署的微服务的调用。
然而,采用相关技术中的方法实现微服务的调用时,各主机均需存储微服务列表,对各主机的存储资源的消耗较大,尤其当微服务的数量(即微服务的规模)比较大时,容易造成调用时间长、效率偏低的技术问题。
为了解决上述技术问题,本申请的发明人经过创造性地劳动,得到了本申请的发明构思:注册中心服务器支持改写功能,以对微服务列表进行改写,并将改写得到的微服务改写列表发送给主机,以便主机基于该微服务改写列表通过网关设备实现对相应微服务的调用,微服务改写列表可以被网关设备直接解析。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
请参阅图2,图2为本申请一个实施例的微服务的调用方法的示意图。
如图2所示,该方法包括:
S201:响应于主机发起的微服务获取请求,确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务。
示例性地,本实施例的执行主体可以为注册中心服务器(下文简称服务器),且服务器可以为本地服务器,也可以为云端服务器,服务器也可以为具有注册功能的计算机和终端设备等,本实施例不做限定。
主机可以为如他1中所示的服务器,也可以为计算机设备,或者其他处理设备等。
S202:对获取到的微服务列表进行改写处理,得到微服务改写列表,微服务改写列表可被网关设备直接解析。
其中,微服务列表与微服务改写列表为相对概念,微服务列表中包括:在微服务通过注册中心服务器注册时,由注册中心服务器存储的与微服务的调用地址等相关信息的列表。微服务改写列表是指对微服务列表进行改写,使得微服务列表能够被网关设备直接解析的列表。
S203:将微服务改写列表反馈给主机,微服务改写列表用于基于网关设备调取微服务。
例如,注册中心服务器将微服务改写列表发送给主机;主机将微服务改写列表发送给网关设备,以请求对微服务的调用;网关设备可直接对微服务改写列表进行解析,从而实现对微服务的调用。
基于上述分析可知,本申请实施例提供了一种微服务的调用方法,应用于注册中心服务器,该方法包括:响应于主机发起的微服务获取请求,确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务,对获取到的微服务列表进行改写处理,得到微服务改写列表,微服务改写列表可被网关设备直接解析,将微服务改写列表反馈给主机,微服务改写列表用于基于网关设备调取微服务,在本实施例中,引入了:由注册中心服务器对微服务列表进行改写,并将改写得到的微服务改写列表传输给主机,以便主机基于微服务改写列表实现对微服务的调用的技术特征,无需在主机的本地内存中存储经注册中心服务器的全量的微服务的信息,避免了存储资源消耗的弊端,实现了降低调用时长,提高调用效率的技术效果。
请参阅图3,图3为本申请另一实施例的微服务的调用方法的示意图。
如图3所示,该方法包括:
S301:网关设备响应于获取针对微服务的注册请求,生成用于指示微服务可基于网关设备调用的改写信息。
S302:网关设备将改写信息传输给集群设备。
其中,集群设备可以为zookeeper集群。
改写信息包括键值对(key-value),键值对中的键key用于表征微服务的名称,键值对中的值value用于表征微服务的调用地址,调用地址存储于注册中心服务器中。
S303:主机向注册中心服务器发送微服务获取请求。
例如,当主机有调用微服务的需求时,可以向注册中心服务器发送微服务获取请求。
S304:注册中心服务器判断zookeeper集群中是否包括微服务的key值,若是,则执行S305,若否,则执行S311。
S305:注册中心服务器从本地内存中获取与微服务对应的微服务列表。
S306:注册中心服务器对微服务列表进行改写,得到微服务改写列表。
其中,微服务改写列表可以被网关设备直接解析。
在一些实施例中,微服务改写列表中的调用地址为包括四级域名信息的调用地址,可以参见表1。即可以基于域名的修改使得微服务改写列表中的调用地址可以直接转到网关设备,且可以由网关设备进行直接解析。
表1:
微服务列表 微服务改写列表
1.1.1.1:8080 1-1-1-1-8080-b.xxx.lo
1.1.1.2:8080 1-1-1-2-8080-b.xxx.lo
其中,可以预先设置泛域名*.b.xxx.lo,该泛域名可以被解析至网关设备的虚拟IP地址。
S307:注册中心服务器向主机发送微服务改写列表。
S308:主机向网关设备发送微服务改写列表。
基于上述分析,微服务改写列表中可能包括多个调用地址,主机可以将微服务改写列表发给网关设备,也可以将微服务改写列表中的至少一个调用地址发给网关设备,本实施例不做限定。
值得说明地是,在本实施例中,结合上述分析可知,可以节约主机的存储资源,提高调用微服务的效率,且通过由注册中心服务器生成微服务改写列表的方式,可以避免对主机的改造、升级和更新,节约了对主机的改造、升级和更新成本,节约了资源,且降低了因微服务迁移等造成的调用微服务的风险。
S309:网关设备根据微服务改写列表对微服务中的每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息。
在一些实施例中,S309可以包括如下步骤:
第一步骤:确定每一微服务实例的实例标签。
在一些实施例中,网关设备可以在获取针对微服务的注册请求时,根据预设的实例标签与流量分配权重之间的第一映射关系,为微服务中的每一微服务实例配置实例标签。
也就是说,在微服务通过网关设备向注册中心服务器注册时,网关设备可以为每一微服务实例配置实例标签,以通过实例标签确定为相应微服务实例的转发流量,从而实现对不同的微服务实例的调用。
在一些实施例中,网关设备在将微服务的注册请求转发给注册中心服务器时,可以在该注册请求中携带实例标签。
相应地,注册中心服务器存储的微服务列表中,既包括微服务实例的调用地址,也包括微服务实例的实例标签。
第二步骤:根据第一映射关系、以及获取到的用于调用微服务的总流量,对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息。
例如,网关设备在获取到用于调用微服务的总流量之后,以第一映射关系为分配流量的基础,通过负载均衡的方式为每一微服务实例进行流量分配,从而实现微服务调用的灵活性和可靠性,且提高对微服务调用的效率的技术效果。
在一些实施例中,响应于微服务的迁移指示,根据迁移指示对第一映射关系进行更新。
也就是说,网关设备可以基于第一映射关系为每一微服务实例分配实例标签,以实现对不同的微服务实例调用的灵活性和多样性,且网关设备也可以基于微服务的迁移等对微服务实例的实例标签进行调整,以实现满足主机对微服务的调用需求。
另一些实施例中,可以基于微服务发现确定迁移后的微服务实例对转发流量的运行信息,以对迁移后的微服务实例被调用的性能进行验证,若确定迁移后的微服务实例调用无问题,则停止向迁移前的微服务实例转发流量。
还一些实施例中,可以由工作人员为迁移后的微服务实例设置权重,且权重的初始值通常设置为0,以使得在微服务发现时,流量不会转发至该微服务实例。当工作人员确定该新增加的微服务实例启动正常时,通过手动修改权重的初始值,且为逐渐修改的过程,如逐渐将权重的初始值0修改为1,且在此过程中由工作人员对转发流量进行监测,以确定转发流量正常。由工作人员将迁移前的微服务实例的权重设置为0,以使得用于调用微服务的流量均转发至迁移后的微服务实例。
具体地,微服务实例具有启动参数,结合上述实施例,启动参数中可以包括实例标签,也可以包括权重。
相对而言,若启动参数中包括权重,则微服务实例完成迁移后,对启动参数中的权重进行删除,以使得微服务实施例重启之后,避免调用微服务的流量被转发至迁移前的微服务实例。
而若启动参数中包括实例标签,则无需对实例标签进行删除,可以节约删除的操作资源,使得调用微服务的流量的转发具有较高的准确性和可靠性的技术效果。
在一些实施例中,网关设备可以构建微服务列表与微服务改写列表之间的第二映射关系,且第二映射关系可以为映射表,可参见表2。更进一步地,该映射表在该映射关系中,可以包括微服务实例的实例标签。
表2:
微服务列表 微服务改写列表 实例标签
1.1.1.1:8080 1-1-1-1-8080-b.xxx.lo
1.1.1.2:8080 1-1-1-2:8080-b.xxx.lo
3.3.3.3:8080 3-3-3-3-8080-b.xxx.lo 实例标签1
4.4.4.4:8080 4-4-4-4-8080-b.xxx.lo 实例标签2
其中,部分微服务实例可以无实例标签,如迁移前的微服务实例没有实例标签。
S310:网关设备根据每一微服务实例的调用地址、以及每一微服务实例的流量分配信息,向至少一个微服务实例转发流量,以调用微服务。
示例性地,结合表2可知,网关设备可以确定可转发流量的调用地址为3-3-3-3-8080-b.xxx.lo和4-4-4-4-8080-b.xxx.lo,则网关设备可以基于实例标签1确定转发给3-3-3-3-8080-b.xxx.lo的流量,并可以基于实例标签2确定转发给4-4-4-4-8080-b.xxx.lo的流量,并通过流量的转发实现对微服务的调用。
而针对无实例标签的1-1-1-1-8080-b.xxx.lo和1-1-1-2:8080-b.xxx.lo不再转发流量。且通过本申请实施提供的方案,可以使得在微服务迁移时,避免无法调用微服务的弊端,确保对微服务调用的可靠性的技术效果。
S311:注册中心服务器从本地内存中获取与微服务对应的微服务列表。
S312:注册中心服务器向主机发送将微服务列表。
S313:主机向网关设备发送微服务列表。
S314:网关设备基于微服务列表执行对微服务的调用。
同理,在本实施例中,网关设备可以对微服务列表进行解析,得到微服务的调用地址,并基于调用地址对微服务进行调用。
请参阅图4,图4为本申请另一实施例的微服务的调用方法的示意图。
如图4所示,该方法包括:
S401:接收主机发送的微服务改写列表。
其中,微服务改写列表为对微服务列表进行改写处理后得到的,微服务列表是基于主机发起的微服务获取请求所确定的,与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务。
示例性地,本实施例的执行主体可以为网关设备。
针对本实施例中与上述实施例中相同的技术特征、以及相应方案的实现原理,可以参见上述实施例,此处不再赘述。
在一些实施例中,响应于获取针对微服务的注册请求,生成改写信息,并将改写信息存储至预设集群设备,改写信息是用于指示微服务可基于网关设备调用的信息。
在一些实施例中,改写信息包括键值对,键值对中的键用于表征微服务的名称,键值对中的值用于表征微服务的调用地址,调用地址存储于注册中心服务器中。
S402:根据微服务改写列表,调用微服务,其中,微服务改写列表可被网关设备直接解析。
值得说明地是,在本实施例中,通过结合微服务改写列表可被网关设备直接解析,使得微服务改写列表中的调用地址均汇聚至网关设备,可以实现对微服务调用的准确性和可靠性的技术效果。
在一些实施例中,微服务包括多个微服务实例,微服务改写列表中包括每一微服务实例的调用地址;S402可以包括如下步骤:
第一步骤:对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息。
在一些实施例中,第一步骤可以包括:确定每一微服务实例的实例标签,并根据获取到的用于调用微服务的总流量、以及第一映射关系,对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息,第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
在一些实施例中,网关设备可以获取针对微服务的注册请求,并根据第一映射关系为微服务中的每一微服务实例配置实例标签,将注册请求转发至注册中心服务器,注册请求用于完成对微服务的注册。
在一些实施例中,网关设备可以根据获取到的微服务的迁移指示,对第一映射关系进行更新。
第二步骤:根据各调用地址和各流量分配信息,向至少一个微服务实例转发流量,以对调用微服务。
在一些实施例中,网关设备可以根据针对微服务的注册请求,确定服务的微服务列表,并根据微服务列表与改写信息,构建微服务列表与微服务改写列表之间的第二映射关系,并根据微服务改写列表和第二映射关系,调用微服务。
请参阅图5,图5为本申请另一实施例的微服务的调用方法的示意图。
如图5所示,该方法包括:
S501:向注册中心服务器发送微服务获取请求,微服务获取请求用于确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务。
示例性地,本实施例的执行主体可以为主机。
针对本实施例中与上述实施例中相同的技术特征、以及相应方案的实现原理,可以参见上述实施例,此处不再赘述。
S502:接收注册中心服务器发送的微服务改写列表,微服务改写列表为对微服务列表进行改写处理得到的,其中,微服务改写列表可被网关设备可直接解析。
其中,微服务改写列表是:响应于与微服务获取请求对应的改写信息,从注册中心服务器中获取微服务列表,并对微服务列表进行改写处理得到的,其中,改写信息是用于指示微服务可基于网关设备调用的信息,微服务由微服务请求所请求。
在一些实施例中,改写信息包括键值对,键值对中的键用于表征微服务的名称,键值对中的值用于表征微服务的调用地址,调用地址存储于注册中心服务器中。
在一些实施例中,微服务包括多个微服务实例,微服务列表中包括每一微服务实例的调用地址;微服务是对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息,并根据每一微服务实例的调用地址、以及每一微服务实例的流量分配信息,向至少一个微服务实例转发流量调用的。
在一些实施例中,每一微服务实例的流量分配信息是:确定每一微服务实例的实例标签,并根据获取到的用于调用微服务的总流量、以及第一映射关系,对每一微服务实例进行流量分配得到的,第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
S503:将微服务改写列表发送给网关设备,微服务改写列表用于基于网关设备调取微服务。
请参阅图6,图6为本申请一个实施例的注册中心服务器的示意图。
如图6所示,注册中心服务器600包括:
第一确定单元601,用于响应于主机发起的微服务获取请求,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务。
改写单元602,用于对获取到的所述微服务列表进行改写处理,得到微服务改写列表,所述微服务改写列表可被网关设备直接解析。
反馈单元603,用于将所述微服务改写列表反馈给所述主机,所述微服务改写列表用于基于所述网关设备调取所述微服务。
请参阅图7,图7为本申请另一实施例的注册中心服务器的示意图。
如图7所示,注册中心服务器700包括:
第一接收单元701,用于接收网关设备转发的针对微服务的注册请求。
第二确定单元702,用于根据注册请求确定并存储微服务的微服务列表。
第一确定单元703,用于响应于主机发起的微服务获取请求,确定与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务。
改写单元704,用于对获取到的微服务列表进行改写处理,得到微服务改写列表,微服务改写列表可被网关设备直接解析。
结合图7可知,在一些实施例中,改写单元704包括:
获取子单元7041,用于响应于微服务获取请求对应的改写信息,从注册中心服务器中获取微服务列表,其中,改写信息是用于指示微服务可基于网关设备调用的信息,微服务由微服务请求所请求。
改写子单元7042,用于对微服务列表进行改写处理,得到微服务改写列表。
在一些实施例中,改写信息包括键值对,键值对中的键用于表征微服务的名称,键值对中的值用于表征微服务的调用地址,调用地址存储于注册中心服务器中。
在一些实施例中,改写信息是基于微服务的注册请求生成的。
反馈单元705,用于将微服务改写列表反馈给主机,微服务改写列表用于基于网关设备调取微服务。
请参阅图8,图8为本申请一个实施例的网关设备的示意图。
如图8所示,网关设备800包括:
第二接收单元801,用于接收主机发送的微服务改写列表,其中,所述微服务改写列表为对微服务列表进行改写处理后得到的,所述微服务列表是基于主机发起的微服务获取请求所确定的,与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务。
调用单元802,用于根据所述微服务改写列表,调用所述微服务,其中,所述微服务改写列表可被网关设备直接解析。
请参阅图9,图9为本申请另一实施例的网关设备的示意图。
如图9所示,网关设备900包括:
生成单元901,用于响应于获取针对微服务的注册请求,生成改写信息,改写信息是用于指示微服务可基于网关设备调用的信息。
在一些实施例中,改写信息包括键值对,键值对中的键用于表征微服务的名称,键值对中的值用于表征微服务的调用地址,调用地址存储于注册中心服务器中。
存储单元902,用于将改写信息存储至预设集群设备。
获取单元903,用于获取针对微服务的注册请求。
配置单元904,用于根据第一映射关系为微服务中的每一微服务实例配置实例标签。
转发单元905,用于将注册请求转发至注册中心服务器,注册请求用于完成对微服务的注册。
第二接收单元906,用于接收主机发送的微服务改写列表,其中,微服务改写列表为对微服务列表进行改写处理后得到的,微服务列表是基于主机发起的微服务获取请求所确定的,与微服务获取请求所请求的微服务对应的微服务列表,微服务列表用于指示调用微服务。
调用单元907,用于根据微服务改写列表,调用微服务,其中,微服务改写列表可被网关设备直接解析。
在一些实施例中,微服务包括多个微服务实例,微服务改写列表中包括每一微服务实例的调用地址;调用单元907,包括:
分配子单元9071,用于对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息。
调用子单元9072,用于根据各调用地址和各流量分配信息,向至少一个微服务实例转发流量,以对调用微服务。
更新子单元9073,用于响应于微服务的迁移指示,根据迁移指示对第一映射关系进行更新。
在一些实施例中,调用子单元9072用于,确定每一微服务实例的实例标签,并根据获取到的用于调用微服务的总流量、以及第一映射关系,对每一微服务实例进行流量分配,得到每一微服务实例的流量分配信息;第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
在一些实施例中,结合图9可知,网关设备900还可以包括:
第三确定单元908,用于根据针对微服务的注册请求,确定微服务的微服务列表。
构建单元909,用于根据微服务列表与改写信息,构建微服务列表与微服务改写列表之间的第二映射关系。
以及,调用单元907用于,根据微服务改写列表和第二映射关系,调用微服务。
请参阅图10,图10为本申请一个实施例的主机的示意图。
如图10所示,主机1000包括:
第一发送单元1001,用于向注册中心服务器发送微服务获取请求,所述微服务获取请求用于确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务。
第三接收单元1002,用于接收所述注册中心服务器发送的微服务改写列表,所述微服务改写列表为对所述微服务列表进行改写处理得到的,其中,所述微服务改写列表可被网关设备可直接解析。
第二发送单元1003,用于将所述微服务改写列表发送给网关设备,所述微服务改写列表用于基于所述网关设备调取所述微服务。
在一些实施例中,所述微服务改写列表是:响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,并对所述微服务列表进行改写处理得到的,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,微服务由微服务请求所请求。
在一些实施例中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
在一些实施例中,所述微服务包括多个微服务实例,所述微服务列表中包括每一所述微服务实例的调用地址;所述微服务是对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,并根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量调用的。
在一些实施例中,每一所述微服务实例的流量分配信息是:确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配得到的;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
根据本申请的实施例,本申请还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
如图11所示,是根据本申请实施例的微服务的调用方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图11所示,该电子设备包括:一个或多个处理器1101、存储器1102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器1101为例。
存储器1102即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的微服务的调用方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的微服务的调用方法。
存储器1102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的微服务的调用方法对应的程序指令/模块。处理器1101通过运行存储在存储器1102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的微服务的调用方法。
存储器1102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据微服务的调用方法的电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1102可选包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至微服务的调用方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
微服务的调用方法的电子设备还可以包括:输入装置1103和输出装置1104。处理器1101、存储器1102、输入装置1103和输出装置1104可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置1103可接收输入的数字或字符信息,以及产生与微服务的调用方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的另一个方面,本申请实施例还提供了一种微服务的调用系统,包括:
如上任一实施例所述的注册中心服务器;
如上任一实施例所述的网关设备;
如上任一实施例所述的主机。
在一些实施例中,微服务的调用系统还可以包括集群设备,用于存储改写信息。其中,集群设备可以为zookeeper集群。
示例性地,如图12所示,微服务的调用系统1200包括:
网关设备1201,用于接收微服务发起的注册请求,并生成与微服务对应的键值对,将键值对传输给zookeeper集群1202。
zookeeper集群1202对键值对进行存储。
主机1203,用于向注册中心服务器1204发送微服务获取请求,以对微服务进行调用。
示例性地,主机1203中可以部署有至少一个微服务,针对主机1203中部署的任意微服务,均可以调用其他的微服务,其他的微服务可以为部署于主机1203中的其他微服务,也可以为部署于其他主机中的其他微服务。
例如,结合图12所示,第一主机中也可以部署有至少一个微服务,相对于主机1203部署的任意微服务而言,第一主机中部署的至少一个微服务可以为其他微服务,即主机1203中的任意微服务可以对第一主机中部署的微服务进行调用。
又如,结合图12所示,第二主机中也可以部署有至少一个微服务,相对于主机1203部署的任意微服务而言,第二主机中部署的至少一个微服务可以为其他微服务,即主机1203中的任意微服务可以对第二主机中部署的微服务进行调用。
再如,结合图12所示,第二主机为第一主机迁移后的主机,针对第一主机中部署的微服务,至少部分被迁移至第二主机。相应地,若第一主机中部署的微服务全部迁移至第二主机,则主机1203中的任意微服务可以对迁移至第二主机中的微服务进行调用;若第一主机中部署的微服务的部分迁移至第二主机,则主机1203中的任意微服务可以对第一主机中未迁移的部分、以及已经迁移至第二主机中的部分进行调用。
注册中心服务器1204,用于判断zookeeper集群1202中是否有与微服务对应的键值对,若有,则获取其本地内存中预先存储的与微服务对应的微服务列表,并对微服务列表进行改写,得到微服务改写列表,以使得微服务改写列表可以直接被网关设备1201解析。
其中,网关设备1201可以将注册请求发送给注册中心服务器1204,相应地,注册中心服务器1204可以基于注册请求确定微服务列表。
注册中心服务器1204还用于,将微服务改写列表传输给主机1203。
主机1203还用于,将微服务改写列表传输给网关设备1201。
网关设备1201还用于,基于微服务改写列表对微服务进行调用。
若微服务包括多个微服务实例,且多个微服务实例部署于不同的主机,如图12所示,多个微服务实例中的部分微服务实例部署于第一主机,部分微服务实例部署于第二主机,则网关设备可以基于各微服务实例的实例标签调用至少一个微服务实例,从而完成对微服务的调用。
例如,结合上述实施例,若第一主机为微服务迁移前的主机,第二主机为微服务迁移后的主机,则网关设备1201可以向第二主机转发流量,以实现对部署于第二主机的微服务实例的调用,从而实现对微服务的调用。
应该理解地是,关于微服务的调用系统中各组件配合实现微服务的调用的原理,可以参见上述实施例,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (25)

1.一种微服务的调用方法,应用于注册中心服务器,所述方法包括:
响应于主机发起的微服务获取请求,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
对获取到的所述微服务列表进行改写处理,得到微服务改写列表,所述微服务改写列表可被网关设备直接解析;
将所述微服务改写列表反馈给所述主机,所述微服务改写列表用于基于所述网关设备调取所述微服务。
2.根据权利要求1所述的方法,其中,对获取到的所述微服务列表进行改写处理,得到微服务改写列表,包括:
响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求;
对所述微服务列表进行改写处理,得到所述微服务改写列表。
3.根据权利要求2所述的方法,其中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
4.根据权利要求2所述的方法,其中,所述改写信息是基于微服务的注册请求生成的。
5.根据权利要求1至4中任一项所述的方法,还包括:
接收所述网关设备转发的针对所述微服务的注册请求,并根据所述注册请求确定并存储所述微服务的微服务列表。
6.一种微服务的调用方法,应用于网关设备,所述方法包括:
接收主机发送的微服务改写列表,其中,所述微服务改写列表为对微服务列表进行改写处理后得到的,所述微服务列表是基于主机发起的微服务获取请求所确定的,与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
根据所述微服务改写列表,调用所述微服务,其中,所述微服务改写列表可被网关设备直接解析。
7.根据权利要求6所述的方法,还包括:
响应于获取针对所述微服务的注册请求,生成改写信息,并将所述改写信息存储至预设集群设备,所述改写信息是用于指示所述微服务可基于所述网关设备调用的信息。
8.根据权利要求7所述的方法,其中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
9.根据权利要求6至8中任一项所述的方法,其中,所述微服务包括多个微服务实例,所述微服务改写列表中包括每一所述微服务实例的调用地址;根据所述微服务改写列表,调用所述微服务,包括:
对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;
根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量,以调用所述微服务。
10.根据权利要求9所述的方法,其中,对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,包括:
确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
11.根据权利要求10所述的方法,还包括:
获取针对所述微服务的注册请求,并根据所述第一映射关系为所述微服务中的每一微服务实例配置实例标签;
将所述注册请求转发至所述注册中心服务器,所述注册请求用于完成对所述微服务的注册。
12.根据权利要求10所述的方法,还包括:
响应于所述微服务的迁移指示,根据所述迁移指示对所述第一映射关系进行更新。
13.根据权利要求7或8所述的方法,还包括:
根据针对所述微服务的注册请求,确定所述微服务的微服务列表,并根据所述微服务列表与所述改写信息,构建所述微服务列表与所述微服务改写列表之间的第二映射关系;
以及,根据所述微服务改写列表,调用所述微服务,包括:根据所述微服务改写列表和所述第二映射关系,调用所述微服务。
14.一种微服务的调用方法,应用于主机,所述方法包括:
向注册中心服务器发送微服务获取请求,所述微服务获取请求用于,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
接收所述注册中心服务器发送的微服务改写列表,所述微服务改写列表为对所述微服务列表进行改写处理得到的,其中,所述微服务改写列表可被网关设备可直接解析;
将所述微服务改写列表发送给网关设备,所述微服务改写列表用于基于所述网关设备调取所述微服务。
15.根据权利要求14所述的方法,其中,所述微服务改写列表是:响应于与所述微服务获取请求对应的改写信息,从注册中心服务器中获取所述微服务列表,并对所述微服务列表进行改写处理得到的,其中,所述改写信息是用于指示微服务可基于所述网关设备调用的信息,所述微服务由所述微服务请求所请求。
16.根据权利要求14所述的方法,其中,所述改写信息包括键值对,所述键值对中的键用于表征微服务的名称,所述键值对中的值用于表征微服务的调用地址,所述调用地址存储于所述注册中心服务器中。
17.根据权利要求14所述的方法,其中,所述微服务包括多个微服务实例,所述微服务列表中包括每一所述微服务实例的调用地址;所述微服务是对每一所述微服务实例进行流量分配,得到每一所述微服务实例的流量分配信息,并根据每一所述微服务实例的调用地址、以及每一所述微服务实例的流量分配信息,向至少一个微服务实例转发流量调用的。
18.根据权利要求14所述的方法,其中,每一所述微服务实例的流量分配信息是:确定每一所述微服务实例的实例标签,并根据获取到的用于调用所述微服务的总流量、以及第一映射关系,对每一所述微服务实例进行流量分配得到的;所述第一映射关系用于指示预设的实例标签与流量分配权重之间的关系。
19.一种注册中心服务器,包括:
第一确定单元,用于响应于主机发起的微服务获取请求,确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
改写单元,用于对获取到的所述微服务列表进行改写处理,得到微服务改写列表,所述微服务改写列表可被网关设备直接解析;
反馈单元,用于将所述微服务改写列表反馈给所述主机,所述微服务改写列表用于基于所述网关设备调取所述微服务。
20.一种网关设备,包括:
第二接收单元,用于接收主机发送的微服务改写列表,其中,所述微服务改写列表为对微服务列表进行改写处理后得到的,所述微服务列表是基于主机发起的微服务获取请求所确定的,与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
调用单元,用于根据所述微服务改写列表,调用所述微服务,其中,所述微服务改写列表可被网关设备直接解析。
21.一种主机,包括:
第一发送单元,用于向注册中心服务器发送微服务获取请求,所述微服务获取请求用于确定与所述微服务获取请求所请求的微服务对应的微服务列表,所述微服务列表用于指示调用微服务;
第三接收单元,用于接收所述注册中心服务器发送的微服务改写列表,所述微服务改写列表为对所述微服务列表进行改写处理得到的,其中,所述微服务改写列表可被网关设备可直接解析;
第二发送单元,用于将所述微服务改写列表发送给网关设备,所述微服务改写列表用于基于所述网关设备调取所述微服务。
22.一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至5中任一项所述的方法;或者,所述处理器被配置为执行如权利要求6至13中任一项所述的方法;或者,所述处理器被配置为执行如权利要求14至18中任一项所述的方法。
23.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至5中任一项所述的方法;或者,所述计算机执行指令被处理器执行时用于实现如权利要求6至13中任一项所述的方法;或者,所述计算机执行指令被处理器执行时用于实现如权利要求14至18中任一项所述的方法。
24.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至5中任一项所述的方法;或者,所述计算机程序在被处理器执行时实现根据权利要求6至13中任一项所述的方法;或者,所述计算机程序在被处理器执行时实现根据权利要求14至18中任一项所述的方法。
25.一种微服务的调用系统,包括:
如权利要求19所述的注册中心服务器;
如权利要求20所述的网关设备;
如权利要求21所述的主机。
CN202111028725.8A 2021-09-02 2021-09-02 微服务的调用方法、系统、服务器、设备和存储介质 Active CN113726902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111028725.8A CN113726902B (zh) 2021-09-02 2021-09-02 微服务的调用方法、系统、服务器、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111028725.8A CN113726902B (zh) 2021-09-02 2021-09-02 微服务的调用方法、系统、服务器、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113726902A true CN113726902A (zh) 2021-11-30
CN113726902B CN113726902B (zh) 2023-05-23

Family

ID=78681252

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111028725.8A Active CN113726902B (zh) 2021-09-02 2021-09-02 微服务的调用方法、系统、服务器、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113726902B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785861A (zh) * 2022-06-22 2022-07-22 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180145890A1 (en) * 2015-07-22 2018-05-24 Huawei Technologies Co., Ltd. Service registration method and usage method, and related apparatus
CN108390766A (zh) * 2017-10-25 2018-08-10 国云科技股份有限公司 一种适用于微服务的服务注册与发现方法
CN108712464A (zh) * 2018-04-13 2018-10-26 中国科学院信息工程研究所 一种面向集群微服务高可用的实现方法
CN109257440A (zh) * 2018-10-29 2019-01-22 南京南瑞信息通信科技有限公司 一种基于服务注册中心的服务发现和客户端负载均衡方法
CN112579698A (zh) * 2020-12-02 2021-03-30 京东数字科技控股股份有限公司 数据同步方法、装置、网关设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180145890A1 (en) * 2015-07-22 2018-05-24 Huawei Technologies Co., Ltd. Service registration method and usage method, and related apparatus
CN108390766A (zh) * 2017-10-25 2018-08-10 国云科技股份有限公司 一种适用于微服务的服务注册与发现方法
CN108712464A (zh) * 2018-04-13 2018-10-26 中国科学院信息工程研究所 一种面向集群微服务高可用的实现方法
CN109257440A (zh) * 2018-10-29 2019-01-22 南京南瑞信息通信科技有限公司 一种基于服务注册中心的服务发现和客户端负载均衡方法
CN112579698A (zh) * 2020-12-02 2021-03-30 京东数字科技控股股份有限公司 数据同步方法、装置、网关设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785861A (zh) * 2022-06-22 2022-07-22 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质
CN114785861B (zh) * 2022-06-22 2022-12-13 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113726902B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US20210208951A1 (en) Method and apparatus for sharing gpu, electronic device and readable storage medium
US20210218690A1 (en) Method and apparatus for allocating server resource, electronic device and storage medium
US20220377045A1 (en) Network virtualization of containers in computing systems
CN110765024B (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
US9634956B2 (en) Multilevel multipath widely distributed computational node scenarios
US9576332B1 (en) Systems and methods for remote graphics processing unit service
CN111666585A (zh) 子应用访问的方法、装置、电子设备以及可读存储介质
CN113849312B (zh) 数据处理任务的分配方法、装置、电子设备及存储介质
EP3869336A1 (en) Method and apparatus for processing development machine operation task, device and storage medium
CN113934464A (zh) Linux系统中启动安卓应用的方法、装置和电子设备
US10924590B1 (en) Virtual workspace experience visualization and optimization
EP3358790A1 (en) Network function virtualization resource processing method and virtualized network function manager
EP3823253A2 (en) Data processing method for mini app, apparatus, device, medium, and computer program product
CN109995552B (zh) Vnf服务实例化方法及装置
US20210117169A1 (en) Code execution method, device, and rendering apparatus
CN113726902B (zh) 微服务的调用方法、系统、服务器、设备和存储介质
CN111770176A (zh) 流量调度方法及装置
CN113612643B (zh) 云手机的网络配置方法、装置、设备以及存储介质
CN108958933B (zh) 任务执行器的配置参数更新方法、装置及设备
CN112596897A (zh) 一种用于多租户隔离的方法及系统
CN111416860B (zh) 基于区块链的事务处理方法、装置、电子设备和介质
CN114390056B (zh) 负载均衡方法、装置、电子设备及存储介质
US10587725B2 (en) Enabling a traditional language platform to participate in a Java enterprise computing environment
CN115576565A (zh) 应用程序的部署方法、装置、电子设备及存储介质
CN115665231A (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
GR01 Patent grant
GR01 Patent grant