CN109788029A - 微服务的灰度调用方法、装置、终端及可读存储介质 - Google Patents
微服务的灰度调用方法、装置、终端及可读存储介质 Download PDFInfo
- Publication number
- CN109788029A CN109788029A CN201811529467.XA CN201811529467A CN109788029A CN 109788029 A CN109788029 A CN 109788029A CN 201811529467 A CN201811529467 A CN 201811529467A CN 109788029 A CN109788029 A CN 109788029A
- Authority
- CN
- China
- Prior art keywords
- gray scale
- service request
- micro services
- request
- client
- 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
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种微服务的灰度调用方法,包括:获取客户端发送的业务请求;根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。本发明还提供一种微服务的灰度调用装置、终端及可读存储介质,本发明的方案基于微服务架构来实现微服务的灰度调用,能够减少业务处理的复杂度,也无需侵入业务代码来强制修改业务请求,能够减少代码维护成本。
Description
技术领域
本发明涉及业务数据处理技术领域,尤其涉及一种微服务的灰度调用方法、装置、终端及可读存储介质。
背景技术
在一些互联网的软件应用进行升级时,灰度发布是一种比较常见的方式,灰度发布是指:让一部分用户继续使用旧软件版本,另一部分用户开始使用新版本软件,如果用户对新版本软件没有什么改进意见,那么逐渐扩大范围,将所有用户都迁移到使用新版本软件。
目前,现有的灰度发布方案有两种,一种方案是按一个独立的环境部署独立版本,此种方式的灰度发布要求必须全量进行搭建部署,升级必须按照整个应用进行升级,灰度服务和非灰度服务是完全隔离的,对于灰度发布的业务处理比较复杂。另一种方案是侵入业务代码来修改服务请求逻辑以达到目的,其对业务开发代码干扰性强,后续维护成本高。
发明内容
本发明的主要目的在于提供一种服微服务的灰度调用方法、装置、终端及可读存储介质,旨在解决现有灰度发布方法复杂且发布成本高的技术问题。
为实现上述目的,本发明提供一种微服务的灰度调用方法,所述微服务的灰度分布方法包括:
获取客户端发送的业务请求;
根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
优选地,所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤包括:
根据所述业务请求中的用户标识获取对应的用户信息;
根据所述用户信息判断所述用户是否为灰度用户;
若所述用户是灰度用户,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述用户不是灰度用户,则生成未添加灰度标示的添加结果。
优选地,所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤之前,包括:
解析所述业务请求获得解析结果;
根据所述解析结果判断所述业务请求中是否包含用户标识;
若所述业务请求中包含用户标识,则进入步骤:根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
若所述业务请求中不包含用户标识,则所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示的步骤替换为:
根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果。
优选地,所述根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果的步骤包括:
根据所述业务请求的客户端标识获取客户端信息;
根据所述客户端信息判断所述客户端是否为灰度客户端;
若所述客户端是灰度客户端,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述客户端不是灰度客户端,则生成未添加灰度标示的添加结果。
优选地,所述若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务的步骤包括:
若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求获取能提供灰度微服务的服务提供者;
根据负载均衡算法从能提供灰度微服务的服务提供者中选取被调用的服务提供者;
将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务。
优选地,所述将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务的步骤之后,包括:
将所述灰度标示以带外数据的方式传输给所述被调用的服务提供者,以使所述被调用的服务提供者将灰度标示添加至处理线程的上下文中。
优选地,所述获取客户端发送的业务请求的步骤之前包括:
获取服务提供者的注册信息;
根据所述注册信息获取服务提供者的版本号;
判断所述版本号是否为灰度版本号;
若所述版本号是灰度版本号,则将对应的服务提供者提供的微服务标示为灰度微服务;
若所述版本号不是灰度版本号,则进入步骤:获取客户端发送的业务请求。
另外,本发明还提供一种所述微服务的灰度调用装置,包括:
第一获取模块,所述第一获取模块用于获取客户端发送的业务请求;
生成模块,所述生成模块用于根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
第一调用模块,所述第一调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
第二调用模块,所述第二调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
本发明还提供一种终端,所述终端包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的微服务的灰度调用程序,其中,所述微服务的灰度调用程序被所述处理器执行时,实现如上所述的微服务的灰度调用方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务的灰度调用程序,其中,所述微服务的灰度调用程序被处理器执行时,实现如上所述的微服务的灰度调用方法的步骤。
本发明技术方案中,获取客户端发送的业务请求;根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。本发明提出的方案基于微服务架构对微服务进行灰度发布,根据客户端提出的业务请求中的用户信息确定是否在业务请求的请求线程的上下文中添加灰度标示,获得添加结果,再根据添加结果来调用灰度微服务或正式微服务,因此,本发明能够通过在业务请求的请求线程的上下文中添加灰度标示来实现微服务的灰度调用,无需全部部署灰度微服务,能够减少业务处理的复杂度;也无需侵入业务代码来强制修改业务请求,能够减少代码维护成本。
附图说明
图1为本发明实施例方案中涉及的终端的硬件结构示意图;
图2为本发明微服务的灰度调用方法第一实施例的路程示意图;。
图3为本发明实施例中根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤的流程细化示意图;
图4为本发明微服务的灰度调用方法第二实施例的流程示意图;
图5为本发明实施例中根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果的步骤的流程细化示意图;
图6为本发明实施例中若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务的步骤的流程细化示意图;
图7为本发明微服务的灰度调用方法第三实施例的流程示意图;
图8为本发明微服务的灰度调用方法第四实施例的流程示意图;
图9为本发明微服务的灰度调用装置的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的微服务的灰度调用方法主要应用于终端,该终端可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的终端结构示意图。本发明实施例中,终端可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块以及微服务的灰度调用程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的微服务的灰度调用程序,并执行微服务的灰度调用方法的步骤。
基于上述终端的硬件结构,提出本发明微服务的灰度调用方法的各个实施例。
本发明提供一种微服务的灰度调用方法。
请参阅图2,在本发明第一实施例中,微服务的灰度调用方法包括以下步骤:
步骤S100,获取客户端发送的业务请求;
在用户需要调用微服务时,需要通过客户端发送调用微服务的业务请求,用户可以通过两种方式通过客户端发送调用微服务的业务请求,一种方式是用户在客户端进行账号登录后发送的业务请求,此时,客户端发送的业务请求中将包含客户端标识和用户标识;另一种方式是用户不在客户端进行账号登录,直接通过客户端发送业务请求,此时,客户端发送的业务请求中只包含客户端标识。
步骤S200,根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
当客户端发送的业务请求中包含有用户标识时,即,用户在客户端登录账号后再通过客户端发送业务请求,本发明的终端获取到客户端发送的业务请求后,根据业务请求中的用户标识确定是否在业务请求的请求线程的上下文中添加灰度标示,并生成添加结果,即,添加结果有两种,一种添加结果是在业务请求的请求线程的上下文中添加灰度标示,另一种添加结果是不在业务请求的请求线程的上下文中添加灰度标示。其中,可以在网络请求代理层与微服务调用代理层之间增加灰度标示拦截器,从而将灰度标示加到当前请求线程的上下文中,达到不侵入业务数据请求目的。
具体地,请参照图3,图3为本发明实施例中根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤的流程细化示意图,步骤S200包括:
步骤S210,根据所述业务请求中的用户标识获取对应的用户信息;
具体地,可以预先在终端的数据库中保存用户标识与用户信息的第一对应关系表,在接收到客户端发送的业务请求后,获取业务请求中的用户标识,再通过用户标识在第一对应关系表中查找到对应的用户信息。
步骤S220,根据所述用户信息判断所述用户是否为灰度用户;
具体地,可以预先在终端的数据库中保存灰度用户表,灰度用户表中记载了所有的灰度用户的信息,在获取到用户信息后,根据用户信息在灰度用户表中进行查找,判断用户是否为灰度用户。其中,灰度用户表是可以根据实际情况进行修改的,即,当需要将某位灰度用户变成非灰度用户时,可以将该灰度用户的用户信息从灰度用户表中删除;当需要将某位非灰度用户变成灰度用户时,可以将该非灰度用户的用户信息添加至灰度用户表中。
步骤S230,若所述用户是灰度用户,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果。
具体地,当通过灰度用户表确定用户为灰度用户时,可以通过设于网络请求代理层与微服务调用代理层之间的灰度标示拦截器,将灰度标示添加至业务请求的请求线程的上下文中,并生成添加了灰度标示的添加结果。
步骤S240,若所述用户不是灰度用户,则生成未添加灰度标示的添加结果。
具体地,当通过灰度用户表确定用户不是灰度用户时,不对该用户的业务请求的请求线程的上下文进行处理,并生成未添加灰度标示的添加结果。
进一步地,在一种实施例中,可以在将灰度标示添加至业务请求的请求线程的上下文中后,将灰度标示返回客户端由客户端记录该标示,后续该灰度用户提出的所有请求的请求线程的上下文中都可以携带有该灰度标示。
步骤S300,若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
如果添加结果表示在业务请求的请求线程的上下文中添加了灰度标示,则说明该业务请求需要调用灰度微服务,因此,可以在终端中保存的服务列表中选取出能够提供灰度微服务的服务提供者,将业务请求转发给灰度微服务的服务提供者,以调用该服务提供者的灰度微服务。其中,服务列表中可以保存有所有的灰度微服务的服务提供者的信息与正式微服务的服务提供者的信息,具体地,可以在服务列表中保存的服务提供者的信息为服务提供者的地址信息和版本号。需要说明的是,灰度微服务为需要用户进行试用的新版本服务提供者所提供的服务。
步骤S400,若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
如果添加结果表示在业务请求的请求线程的上下文中未添加灰度标示,则说明该业务请求需要调用正式微服务,因此,可以在预设的服务列表中选取出正式微服务的服务提供者,将业务请求转发给正式微服务的服务提供者,以调用该服务提供者的正式微服务。需要说明的是,正式微服务为用户正在使用的旧版本服务提供者提供的服务。
本发明技术方案中,获取客户端发送的业务请求;根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。本发明提出的方案基于微服务架构对微服务进行灰度发布,根据客户端提出的业务请求中的用户信息确定是否在业务请求的请求线程的上下文中添加灰度标示,获得添加结果,再根据添加结果来调用灰度微服务或正式微服务,因此,本发明能够通过在业务请求的请求线程的上下文中添加灰度标示来实现微服务的灰度调用,无需全部部署灰度微服务,能够减少业务处理的复杂度;也无需侵入业务代码来强制修改业务请求,能够减少代码维护成本。
进一步地,请参照图4,图4为本发明微服务的灰度调用方法第二实施例的流程示意图,基于第一实施例,步骤S200之前包括:
步骤S500,解析所述业务请求获得解析结果;
需要说明的是,当用户在登录账号后通过客户端发送业务请求时,客户端发送的业务请求中将包含客户端标识和用户标识;当用户在未登录账号的情况下通过客户端发送业务请求时,客户端发送的业务请求中只包含客户端标识。
具体地,对客户端发送的业务请求进行解析,获得解析结果,解析结果有两种,一种是业务请求中将包含客户端标识和用户标识;另一种是业务请求中只包含客户端标识。
步骤S600,根据所述解析结果判断所述业务请求中是否包含用户标识;
当获得解析结果后,根据解析结果判断业务请求中是否包含用户标识。
若业务请求中包含用户标识,则进入步骤S200;
若业务请求中不包含用户标识,则步骤S200替换为步骤S700:根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果。
具体地,若业务请求中不包含用户标识,则说明业务请求中只包含客户端标识,需要根据客户端标识来确定是否在业务请求的当前请求线程的上下文中添加灰度标示,即,根据客户端标识来确定客户端需要调用哪种微服务,因此,需要根据业务请求中的客户端标识确定是否在业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果。
进一步地,请参照图5,图5为本发明实施例中根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果的步骤的流程细化示意图,基于第二实施例,步骤S700包括:
步骤S710,根据所述业务请求的客户端标识获取客户端信息;
具体地,可以预先在终端的数据库中保存客户端标识与客户端信息的第二对应关系表,在接收到客户端发送的业务请求后,获取业务请求中的客户端标识,再通过客户端标识在第二对应关系表中查找到对应的客户端信息。
步骤S720,根据所述客户端信息判断所述客户端是否为灰度客户端;
具体地,可以预先在终端的数据库中保存灰度客户端表,灰度客户端表中记载了所有的灰度客户端的信息,在获取到客户端信息后,根据客户端信息在灰度客户端表中进行查找,判断客户端是否为灰度客户端。其中,灰度客户端表是可以根据实际情况进行修改的,即,当需要将某个灰度客户端变成非灰度客户端时,可以将该灰度客户端的客户端信息从灰度客户端表中删除;当需要将某个非灰度客户端变成灰度客户端时,可以将该非灰度客户端的客户端信息添加至灰度客户端表中。
步骤S730,若所述客户端是灰度客户端,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
具体地,当通过灰度客户端表确定客户端为灰度客户端时,可以通过设于网络请求代理层与微服务调用代理层之间的灰度标示拦截器,将灰度标示添加至业务请求的请求线程的上下文中,并生成添加了灰度标示的添加结果。
步骤S740,若所述客户端不是灰度客户端,则生成未添加灰度标示的添加结果。
具体地,当通过灰度客户端表确定客户端不是灰度客户端时,不对该客户端的业务请求的请求线程的上下文进行处理,并生成未添加灰度标示的添加结果。
进一步地,请参照图6,图6为本发明实施例中若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务的步骤的流程细化示意图,基于第一实施例,步骤S300包括:
步骤S310,若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求获取能提供灰度微服务的服务提供者;
具体地,当在客户端发送的业务请求的请求线程的上下文中添加了灰度标示后,终端将根据该业务请求查找能够提供业务请求所需灰度微服务的所有的服务提供者,再在能够提供灰度微服务的所有的服务提供者中选取出被调用的服务提供者。此外,如果终端查找不到能够提供灰度微服务的服务提供者,则将业务请求转发给能够提供正式微服务的服务提供者。
步骤S320,根据负载均衡算法从能提供灰度微服务的服务提供者中选取被调用的服务提供者;
具体地,为了选取出被调用的服务提供者,可以通过负载均衡算法对所有的服务提供者进行计算,选取出最终被调用的服务提供者。其中,负载均衡算法包括但不限于:负载均衡算法包括但不限于轮询法、加权轮询法和最小连接数法。
步骤S330,将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务。
将业务请求转发给被调用的服务提供者以调用对应的灰度微服务。具体地,在选取出被调用的服务提供者后,可以获取被调用的服务提供者的地址信息,再根据该地址信息业务请求转发给被调用的服务提供者以调用服务提供者上的灰度微服务。
需要说明的是,当调用正式微服务时,也是根据业务请求利用负载均衡算法从能够提供正式微服务的所有的服务提供者中选取出被调用的服务提供者,再将业务请求发送至被调用的服务提供者,已调用对应的正式微服务。
进一步地,请参照图7,图7为本发明微服务的灰度调用方法第三实施例的流程示意图,基于上述实施例,步骤S330之后,还包括:
步骤S340,将所述灰度标示以带外数据的方式传输给所述被调用的服务提供者,以使所述被调用的服务提供者将灰度标示添加至处理线程的上下文中。
具体地,在选取出被调用的服务提供者后,可以将灰度标示以带外数据的方式传输给被调用的服务提供者,被调用的服务提供者在接收到包含有灰度标示的同时,将灰度标示放在处理线程的上下文中,供之后的其他能够提供灰度微服务的服务提供者使用。
进一步地,请参照图8,图8为本发明微服务的灰度调用方法第四实施例的流程示意图,基于第一实施例,步骤S100之前包括:
步骤S110,获取服务提供者的注册信息;
步骤S120,根据所述注册信息获取服务提供者的版本号;
步骤S130,判断所述版本号是否为灰度版本号;
步骤S140,若所述版本号是灰度版本号,则将对应的服务提供者提供的微服务标示为灰度微服务;
若所述版本号不是灰度版本号,则进入步骤S100。
具体地,服务提供者需要在服务注册表中进行注册,服务提供者注册后,获取服务提供者的注册信息,注册信息可以包括地址信息和版本号信息,根据该注册信息获取服务提供者的版本号,再判断服务提供者的版本号是否为灰度版本号,如果版本号是灰度版本号,则将对应的服务提供者提供的微服务以版本号形式进行标示,即将该服务提供者提供的微服务以版本号形式标示自身为灰度微服务;如果版本号不是灰度版本号,那么对应的微服务不需要进行标示,该版本号就是正式版本号,该服务提供者提供的微服务就是正式版本号的微服务。此外,可以将提供灰度微服务的服务提供者的地址信息和版本号、提供正式微服务的服务提供者的地址信息和版本号保存至服务列表中。其中,在一种实施例中,可以终端预设灰度版本号表,通过灰度版本号表来确定服务提供者的版本号是否为灰度版本号,该灰度版本号表中的版本号可以根据实际需要进行更改。在另一种实施例中,当有服务提供者进行注册时,可以将版本号显示于终端的显示界面,由工作人员确定该版本号是否为灰度版本号。因此,可以根据实际情况确定某个微服务是否为灰度微服务,灵活通过服务注册表的机制来控制某个灰度微服务的上下架。
此外,本发明还提供一种微服务的灰度调用装置10,所述微服务的灰度调用装置包括:
第一获取模块20,所述第一获取模块用于获取客户端发送的业务请求;
生成模块30,所述生成模块用于根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
第一调用模块40,所述第一调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
第二调用模块50,所述第二调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
进一步地,所述生成模块30还用于:
根据所述业务请求中的用户标识获取对应的用户信息;
根据所述用户信息判断所述用户是否为灰度用户;
若所述用户是灰度用户,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述用户不是灰度用户,则生成未添加灰度标示的添加结果。
进一步地,所述微服务的灰度调用装置10还包括:
解析模块,所述解析模块用于解析所述业务请求获得解析结果;
第一判断模块,所述第一判断模块用于根据所述解析结果判断所述业务请求中是否包含用户标识;
所述生成模块30还用于根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果。
进一步地,所述生成模块30还用于:
根据所述业务请求的客户端标识获取客户端信息;
根据所述客户端信息判断所述客户端是否为灰度客户端;
若所述客户端是灰度客户端,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述客户端不是灰度客户端,则生成未添加灰度标示的添加结果。
进一步地,所述第一调用模块40还用于:
若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求获取能提供灰度微服务的服务提供者;
根据负载均衡算法从能提供灰度微服务的服务提供者中选取被调用的服务提供者;
将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务。
进一步地,所述微服务的灰度调用装置10还包括:
传输模块,所述传输模块用于将所述灰度标示以带外数据的方式传输给所述被调用的服务提供者,以使所述被调用的服务提供者将灰度标示添加至处理线程的上下文中。
进一步地,所述微服务的灰度调用装置10还包括:
第二获取模块,所述第二获取模块用于获取服务提供者的注册信息;
第三获取模块,所述第三获取模块用于根据所述注册信息获取服务提供者的版本号;
第二判断模块,所述第二判断模块用于判断所述版本号是否为灰度版本号;
标示模块,所述标示模块用于若所述版本号是灰度版本号,则将对应的服务提供者提供的微服务标示为灰度微服务。
其中,上述微服务的灰度调用装置中各个模块与上述微服务的灰度调用方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
此外,本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有微服务的灰度调用程序,其中,微服务的灰度调用程序被处理器执行时,实现如上述的微服务的灰度调用方法的步骤。
其中,微服务的灰度调用程序被执行时所实现的方法可参照本发明微服务的灰度调用方法的各个实施例,此处不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种微服务的灰度调用方法,其特征在于,所述微服务的灰度调用方法包括:
获取客户端发送的业务请求;
根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
2.如权利要求1所述的微服务的灰度调用方法,其特征在于,所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤包括:
根据所述业务请求中的用户标识获取对应的用户信息;
根据所述用户信息判断所述用户是否为灰度用户;
若所述用户是灰度用户,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述用户不是灰度用户,则生成未添加灰度标示的添加结果。
3.如权利要求1所述的微服务的灰度调用方法,其特征在于,所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果的步骤之前,包括:
解析所述业务请求获得解析结果;
根据所述解析结果判断所述业务请求中是否包含用户标识;
若所述业务请求中包含用户标识,则进入步骤:根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
若所述业务请求中不包含用户标识,则所述根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示的步骤替换为:
根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果。
4.根据权利要求3所述的微服务的灰度调用方法,其特征在于,所述根据所述业务请求中的客户端标识确定是否在所述业务请求的当前请求线程的上下文中添加灰度标示,并生成添加结果的步骤包括:
根据所述业务请求的客户端标识获取客户端信息;
根据所述客户端信息判断所述客户端是否为灰度客户端;
若所述客户端是灰度客户端,则在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加了灰度标示的添加结果;
若所述客户端不是灰度客户端,则生成未添加灰度标示的添加结果。
5.如权利要求1-4中任一项所述的微服务的灰度调用方法,其特征在于,所述若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务的步骤包括:
若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求获取能提供灰度微服务的服务提供者;
根据负载均衡算法从能提供灰度微服务的服务提供者中选取被调用的服务提供者;
将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务。
6.如权利要求5所述的微服务的灰度调用方法,其特征在于,所述将所述业务请求转发给所述被调用的服务提供者以调用对应的灰度微服务的步骤之后,包括:
将所述灰度标示以带外数据的方式传输给所述被调用的服务提供者,以使所述被调用的服务提供者将灰度标示添加至处理线程的上下文中。
7.如权利要求1-4中任一项所述的微服务的灰度调用方法,其特征在于,所述获取客户端发送的业务请求的步骤之前包括:
获取服务提供者的注册信息;
根据所述注册信息获取服务提供者的版本号;
判断所述版本号是否为灰度版本号;
若所述版本号是灰度版本号,则将对应的服务提供者提供的微服务标示为灰度微服务;
若所述版本号不是灰度版本号,则进入步骤:获取客户端发送的业务请求。
8.一种微服务的灰度调用装置,其特征在于,所述微服务的灰度调用装置包括:
第一获取模块,所述第一获取模块用于获取客户端发送的业务请求;
生成模块,所述生成模块用于根据所述业务请求中的用户标识确定是否在所述业务请求的请求线程的上下文中添加灰度标示,并生成添加结果;
第一调用模块,所述第一调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中添加了灰度标示,则根据所述业务请求调用灰度微服务;
第二调用模块,所述第二调用模块用于若所述添加结果表示所述业务请求的请求线程的上下文中未添加灰度标示,则根据所述业务请求调用正式微服务。
9.一种终端,其特征在于,所述终端包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的微服务的灰度调用程序,其中,所述微服务的灰度调用程序被所述处理器执行时,实现如权利要求1至7中任一项所述的微服务的灰度调用方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务的灰度调用程序,其中,所述微服务的灰度调用程序被处理器执行时,实现如权利要求1至7中任一项所述的微服务的灰度调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811529467.XA CN109788029A (zh) | 2018-12-14 | 2018-12-14 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811529467.XA CN109788029A (zh) | 2018-12-14 | 2018-12-14 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109788029A true CN109788029A (zh) | 2019-05-21 |
Family
ID=66496211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811529467.XA Pending CN109788029A (zh) | 2018-12-14 | 2018-12-14 | 微服务的灰度调用方法、装置、终端及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109788029A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176715A (zh) * | 2019-12-16 | 2020-05-19 | 青岛聚看云科技有限公司 | 一种信息调用方法及服务器 |
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN111563075A (zh) * | 2020-05-06 | 2020-08-21 | 政采云有限公司 | 一种业务校验系统、方法及设备和存储介质 |
CN111580846A (zh) * | 2020-05-15 | 2020-08-25 | 厦门靠谱云股份有限公司 | 一种基于混合框架的微服务灰度发布方法 |
CN113382051A (zh) * | 2021-06-01 | 2021-09-10 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
CN113918193A (zh) * | 2021-10-29 | 2022-01-11 | 平安普惠企业管理有限公司 | 适用于微服务的灰度调用方法、装置、设备及存储介质 |
WO2022037272A1 (zh) * | 2020-08-21 | 2022-02-24 | 烽火通信科技股份有限公司 | 灰度发布方法、装置、设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791344A (zh) * | 2014-12-22 | 2016-07-20 | 华为软件技术有限公司 | 灰度发布业务处理的方法、系统、负载均衡器及服务总线装置 |
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN107920112A (zh) * | 2017-11-01 | 2018-04-17 | 重庆金融资产交易所有限责任公司 | 支持灰度模式的配置文件推送方法、中心服务器及存储介质 |
CN108319468A (zh) * | 2017-01-16 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 灰度发布方法、装置、系统及电子设备 |
CN108376118A (zh) * | 2018-02-09 | 2018-08-07 | 腾讯科技(深圳)有限公司 | 服务发布系统、方法、设备及存储介质 |
CN108574601A (zh) * | 2018-03-27 | 2018-09-25 | 无锡华云数据技术服务有限公司 | 一种灰度发布方法及系统 |
CN108595207A (zh) * | 2018-03-23 | 2018-09-28 | 深圳乐信软件技术有限公司 | 一种灰度发布方法、规则引擎、系统、终端和存储介质 |
-
2018
- 2018-12-14 CN CN201811529467.XA patent/CN109788029A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791344A (zh) * | 2014-12-22 | 2016-07-20 | 华为软件技术有限公司 | 灰度发布业务处理的方法、系统、负载均衡器及服务总线装置 |
WO2017071425A1 (zh) * | 2015-10-29 | 2017-05-04 | 腾讯科技(深圳)有限公司 | 版本更新方法及装置 |
CN108319468A (zh) * | 2017-01-16 | 2018-07-24 | 北京京东尚科信息技术有限公司 | 灰度发布方法、装置、系统及电子设备 |
CN107920112A (zh) * | 2017-11-01 | 2018-04-17 | 重庆金融资产交易所有限责任公司 | 支持灰度模式的配置文件推送方法、中心服务器及存储介质 |
CN108376118A (zh) * | 2018-02-09 | 2018-08-07 | 腾讯科技(深圳)有限公司 | 服务发布系统、方法、设备及存储介质 |
CN108595207A (zh) * | 2018-03-23 | 2018-09-28 | 深圳乐信软件技术有限公司 | 一种灰度发布方法、规则引擎、系统、终端和存储介质 |
CN108574601A (zh) * | 2018-03-27 | 2018-09-25 | 无锡华云数据技术服务有限公司 | 一种灰度发布方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176715A (zh) * | 2019-12-16 | 2020-05-19 | 青岛聚看云科技有限公司 | 一种信息调用方法及服务器 |
CN111290867A (zh) * | 2020-02-27 | 2020-06-16 | 北京三快在线科技有限公司 | 流量调度方法、业务服务器、存储介质及流量调度系统 |
CN111563075A (zh) * | 2020-05-06 | 2020-08-21 | 政采云有限公司 | 一种业务校验系统、方法及设备和存储介质 |
CN111563075B (zh) * | 2020-05-06 | 2024-01-23 | 政采云有限公司 | 一种业务校验系统、方法及设备和存储介质 |
CN111580846A (zh) * | 2020-05-15 | 2020-08-25 | 厦门靠谱云股份有限公司 | 一种基于混合框架的微服务灰度发布方法 |
WO2022037272A1 (zh) * | 2020-08-21 | 2022-02-24 | 烽火通信科技股份有限公司 | 灰度发布方法、装置、设备及可读存储介质 |
CN113382051A (zh) * | 2021-06-01 | 2021-09-10 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
WO2022252856A1 (zh) * | 2021-06-01 | 2022-12-08 | 中国民航信息网络股份有限公司 | 一种全链路的灰度发布方法及灰度发布系统 |
CN113918193A (zh) * | 2021-10-29 | 2022-01-11 | 平安普惠企业管理有限公司 | 适用于微服务的灰度调用方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109788029A (zh) | 微服务的灰度调用方法、装置、终端及可读存储介质 | |
CN110347596B (zh) | 一种测试方法、装置、系统、电子设备及介质 | |
US10009303B2 (en) | Message push method and apparatus | |
CN103841134B (zh) | 基于api发送、接收信息的方法、装置及系统 | |
US20150128103A1 (en) | System and method for automating application programming interface integration | |
CN110187912B (zh) | 一种节点选择方法和装置 | |
US20120017222A1 (en) | Interface For Telecommunication Services Using Uniform Resource Identifiers | |
CN104135507B (zh) | 一种防盗链的方法和装置 | |
CN108376078A (zh) | 设备的升级方法、装置以及家电设备 | |
CN106569790B (zh) | 卡片模板生成方法、服务提供方法、信息提供方法及装置 | |
US10044597B2 (en) | System and method for processing service requests using logical environments | |
CN108319463A (zh) | 一种应用升级方法、装置 | |
CN109992406B (zh) | 图片请求方法、响应图片请求的方法及客户端 | |
WO2023185166A1 (zh) | 服务调用方法、装置、设备及存储介质 | |
CN110557284A (zh) | 基于客户端网关的数据聚合方法及装置 | |
CN112565406B (zh) | 一种灰度发布方法、灰度发布系统及电子设备 | |
KR20170141711A (ko) | 시각적 상호 작용 음성 응답 시스템 | |
CN106453671A (zh) | 用于cdn 调度的方法、客户端、服务器和系统 | |
CN109828840A (zh) | 资源编排方法、装置、存储介质及电子设备 | |
CN104219312B (zh) | 一种安装程序的方法及装置 | |
CN105635124A (zh) | 流量控制方法和装置 | |
CN108471361A (zh) | 一种版本升级方法及装置 | |
CN111698281B (zh) | 一种资源下载方法、装置、电子设备及存储介质 | |
US20170214611A1 (en) | Sip header configuration for identifying data for language interpretation/translation | |
CN107547591A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |