基于微服务架构的请求数据处理方法、装置、计算机设备与流程

文档序号:29718623发布日期:2022-04-16 19:02阅读:55来源:国知局
1.本公开涉及微服务数据处理
技术领域
:,特别是涉及一种基于微服务架构的请求数据处理方法、装置、计算机设备。
背景技术
::2.随着大数据、人工智能、移动互联、云计算、物联网等新一代信息技术的发展,应用上云已经是不可逆转的趋势。同时,用户的迅速增长和业务的快速发展,对开发人员要求越来越高,一方面要求为用户提供稳定的服务,一方面要求进行应用实现快速业务迭代。在线系统在生产环境发布过程中,为了保持原有的功能平稳运行,同时对新功能进行试运行,通常会对在线系统引入相应的发布方案。目前常见的发布方案包括:灰度发布和蓝绿发布。3.但是应用发布并非一蹴而就,而是逐步更新服务的长期过程。在应用发布期间,为了保证服务提供的平稳,以及进行新版本的测试,针对用户请求的响应对服务调用更加复杂。尤其是长链路的服务调用,对服务的链路调用提出了更高的要求。目前的调用方式具有一定的局限性,操作繁琐易错,适应性较弱,降低了应用发布的准确性和效率。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种基于微服务架构的请求数据处理方法、装置、计算机设备、存储介质和计算机程序产品。5.第一方面,本公开提供了一种基于微服务架构的请求数据处理方法。所述方法包括:6.接收用户请求,并获取所述用户请求的显式灰度因子;7.将所述显式灰度因子与发布策略进行匹配,确定与所述用户请求相适配的发布策略;所述发布策略包括蓝绿发布策略和灰度发布策略;8.根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路;9.基于所述用户请求的调用链路响应所述用户请求。10.在其中一个实施例中,所述接收用户请求,并获取所述用户请求的显式灰度因子之前包括:11.为微服务架构中的服务实例定义灰度属性,所述灰度属性与所述服务实例绑定存储在所述服务实例的元数据中;所述灰度属性包括服务版本、服务地址、连接端口。12.在其中一个实施例中,所述接收用户请求,并获取所述用户请求的显式灰度因子之前包括:13.在所述微服务架构的入口网关处为所述用户请求嵌入显式灰度因子;所述显式灰度因子以键值对的形式存储在请求域中;所述显式灰度因子用于指示所述用户请求适配的所述调用链路。14.在其中一个实施例中,所述将所述显式灰度因子与发布策略进行匹配,确定与所述用户请求相适配的发布策略包括:15.根据所述显式灰度因子,计算与所述显式灰度因子相匹配的发布策略;16.根据与所述显式灰度因子相匹配的发布策略获得所述用户请求的服务特性。17.在其中一个实施例中,所述根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路包括:18.在匹配到所述蓝绿发布策略的情况下,根据所述用户请求的服务特性获取与所述用户请求适配的调用链路;19.将所述调用链路的可访问服务实例的信息写入隐式灰度因子。20.在其中一个实施例中,所述根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路包括:21.在匹配到所述灰度发布策略的情况下,根据所述用户请求的服务特性获取可访问服务实例的比例,将所述可访问服务实例的比例写入隐式灰度因子;22.根据所述可访问服务实例的比例和灰度负载均衡算法计算所述应用调用链路中的调用站点。23.在其中一个实施例中,所述在匹配到所述蓝绿发布策略的情况下,根据所述用户请求的服务特性获取与所述用户请求适配的调用链路包括:24.对原始调用链路进行蓝色染色,灰度调用链路进行绿色染色,配置蓝色调用链路和绿色调用链路;25.根据所述灰度因子确定适配的调用链路,将所述用户请求染色为对应的调用链路的颜色,并将染色信息缓存至请求域。26.在其中一个实施例中,所述配置蓝色调用链路和绿色调用链路包括:27.在所述入口网关处配置所述调用链路;28.或者在所述微服务实例节点配置所述调用链路。29.第二方面,本公开还提供了一种基于微服务架构的应用发布处理装置。所述装置包括:30.灰度因子模块,用于接收用户请求,并获取所述用户请求的显式灰度因子;31.发布策略匹配模块,用于将所述显式灰度因子与发布策略进行匹配,确定与所述用户请求相适配的发布策略;所述发布策略包括蓝绿发布策略和灰度发布策略;32.服务调用模块,用于根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路;33.响应模块,用于基于所述用户请求的调用链路响应所述用户请求。34.在其中一个实施例中,所述装置还包括灰度属性模块,用于为微服务架构中的服务实例定义灰度属性,所述灰度属性与所述服务实例绑定存储在所述服务实例的元数据中;所述灰度属性包括服务版本、服务地址、连接端口。35.在其中一个实施例中,所述装置还包括请求嵌入模块,用于在所述微服务架构的入口网关处为所述用户请求嵌入显式灰度因子;所述显式灰度因子以键值对的形式存储在请求域中;所述显式灰度因子用于指示所述用户请求适配的所述调用链路。36.在其中一个实施例中,所述策略匹配模块包括:37.灰度因子单元,用于根据所述显式灰度因子,计算与所述显式灰度因子相匹配的发布策略;38.服务特性单元,用于根据与所述显式灰度因子相匹配的发布策略获得所述用户请求的服务特性。39.在其中一个实施例中,所述调用链路模块包括:40.蓝绿发布策略单元,用于在匹配到所述蓝绿发布策略的情况下,根据所述用户请求的服务特性获取与所述用户请求适配的调用链路;41.服务信息单元,用于将所述调用链路的可访问服务实例的信息写入隐式灰度因子。42.在其中一个实施例中,所述调用链路模块包括:43.灰度发布策略单元,在匹配到所述灰度发布策略的情况下,根据所述用户请求的服务特性获取可访问服务实例的比例;44.服务信息单元还用于将所述可访问服务实例的比例写入隐式灰度因子;45.调用站点单元,用于根据所述可访问服务实例的比例和灰度负载均衡算法计算所述应用调用链路中的调用站点。46.在其中一个实施例中,本装置还包括染色模块,所述染色模块包括:47.链路染色单元,用于对原始调用链路进行蓝色染色,灰度调用链路进行绿色染色,配置蓝色调用链路和绿色调用链路;48.请求染色单元,用于根据所述显式灰度因子确定适配的调用链路,将所述用户请求染色为对应的调用链路的颜色,并将染色信息缓存至请求域。49.在其中一个实施例中,所述染色模块还包括:50.染色配置单元,用于在所述入口网关处配置所述调用链路,或者在所述微服务实例节点配置所述调用链路。51.第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于微服务架构的请求数据处理方法的步骤。52.第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于微服务架构的请求数据处理方法的步骤。53.第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于微服务架构的请求数据处理方法的步骤。54.上述基于微服务架构的请求数据处理方法、装置、计算机设备、存储介质和计算机程序产品,至少包括以下有益效果:55.本公开基于可配置化发布思想,根据用户请求的显式灰度因子匹配适配的发布策略,可以通过显式灰度因子实现对应用的定制化发布策略,使得在应用发布期间提高了服务链路调用的准确性;同时使得链路调用更加灵活,更适配不同业务场景的应用发布;另外,还确保了应用发布期间,保持原有的功能平稳运行,同时对新功能进行试运行。附图说明56.为了更清楚地说明本公开实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。57.图1为一个实施例中基于微服务架构的请求数据处理方法的应用环境图;58.图2为一个实施例中基于微服务架构的请求数据处理方法的流程示意图;59.图3为一个实施例中策略匹配步骤的流程示意图;60.图4为一个实施例中匹配到蓝绿发布策略的流程示意图;61.图5为一个实施例中匹配到灰度发布策略的流程示意图;62.图6为一个实施例中蓝绿发布策略的步骤流程示意图;63.图7为一个实施例中基于微服务架构的应用发布处理装置的结构框图;64.图8为一个实施例中策略匹配模块的结构框图;65.图9为一个实施例中调用链路模块的结构框图;66.图10为一个实施例中调用链路模块的另一结构框图;67.图11为一个实施例中染色模块的结构框图;68.图12为一个实施例中染色模块的另一结构框图;69.图13为一个实施例中计算机设备的内部结构框图。具体实施方式70.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。71.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的
技术领域
:的技术人员通常理解的含义相同。本文中在本公开的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开。72.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。73.在此使用时,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本说明书中,术语“和/或”包括相关所列项目的任何及所有组合。74.本技术实施例提供的基于微服务架构的请求数据处理方法,可以应用于如图1所示的应用环境中。其中,微服务架构104通过网络为客户端102提供应用服务,微服务架构104包括入口网关103、注册中心、若干服务实例,注册中心用于管理各个服务实例。客户端102的用户请求经过入口网关103至微服务架构104,微服务架构104响应用户请求为客户端102提供服务。微服务架构104相比于单体式应用内部包含了所有需要的服务,微服务架构104通常可以理解为将单个应用程序划分成各种小的、互相连接的服务,一个服务完成一个比较单一的功能,相互之间保持独立和解耦合。微服务架构104的应用和服务可以进行云上部署,微服务架构104中包括数据存储系统可以存储微服务架构104需要处理的数据。数据存储系统可以集成在微服务架构104中,数据存储系统可以在每个服务实例上进行部署。数据存储系统也可以放在云上或其他网络服务器上。75.其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。76.在本公开的一些实施例中,如图2所示,提供了一种基于微服务架构的请求数据处理方法,以该方法应用于图1中的微服务架构为例进行说明,包括以下步骤:77.步骤s10:接收用户请求,并获取所述用户请求的显式灰度因子。78.具体地,微服务架构的应用可以用于接收客户端的用户请求,并响应用户请求为客户端提供服务。微服务架构对接收到的用户请求进行解析,具体可以采用负载均衡算法进行解析,例如轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法、latency-aware等,应根据具体的使用场景选取对应的算法。针对微服务架构,应用发布通常是指对提供应用服务的服务实例进行逐步替换更新版本,服务实例原来的服务版本为稳定版本,更新后的服务版本为灰度版本。因此在响应用户请求为客户端提供服务时,需要明确服务的服务版本。在接收到用户请求后,根据用户请求获取所述用户请求的显式灰度因子。显式灰度因子是嵌入在用户请求中的,本质是一个或一群可以体现用户请求的请求特性的参数。79.步骤s20:将所述显式灰度因子与发布策略进行匹配,确定与所述用户请求相适配的发布策略;所述发布策略包括蓝绿发布策略和灰度发布策略。80.具体地,解析显式灰度因子,将显式灰度因子与发布策略进行匹配,确定相适配的发布策略。本实施例中发布策略包括了蓝绿发布策略和灰度发布策略。发布策略通常可以是指应用发布的方式。蓝绿发布策略通常是指,在微服务框架中的服务实例分为两个链路,将蓝色链路中的服务实例提供稳定版本的服务,绿色链路中的服务实例提供灰度版本服务,通过在两个链路中切换流量来实现应用服务版本的更新。应用更新时,蓝色链路仍然对外提供服务,绿色链路升级应用版本,测试通过后,通过负载均衡变更,将流量指向绿色链路,完成应用发布。灰度发布策略通常是指,在微服务架构中,选取一部分服务实例作为服务群组,向客户端提供灰度版本的服务,通过调节提供稳定版本和灰度版本的服务实例的比例达到应用发布的目的。两种发布策略各有优劣,根据显式灰度因子,确定当前应用发布适配的发布策略。81.步骤s30:根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路。82.具体地,在根据显式灰度因子确定应用发布策略后,可以通过拉取注册中心的服务列表计算确定响应用户请求需要调用服务的调用链路。注册中心用于记录微服务架构的服务和服务地址的映射关系。在微服务架构中,可以根据用户请求在注册中心查找到服务的地址,进行调用。83.步骤s40:基于所述用户请求的调用链路响应所述用户请求。84.具体地,在确定发布策略以及调用链路后,按照确定的调用链路对服务进行调用以响应用户请求,为客户端提供服务。85.上述基于微服务架构的请求数据处理方法中,基于可配置化发布思想,根据用户请求的显式灰度因子匹配适配的发布策略,可以通过显式灰度因子实现对应用的定制化发布策略,使得在应用发布期间提高了服务链路调用的准确性;同时使得链路调用更加灵活,更适配不同业务场景的应用发布;另外,还确保了应用发布期间,保持原有的功能平稳运行,同时对新功能进行试运行。86.在本公开的一些实施例中,上述步骤s10之前包括:87.为微服务架构中的服务实例定义灰度属性,所述灰度属性与所述服务实例绑定存储在所述服务实例的元数据中;所述灰度属性包括服务版本、服务地址、连接端口。88.具体地,为了对服务实例进行定位,可以准确寻址提供灰度版本服务的服务实例,预先为每个服务实例定义灰度属性,使得可以根据灰度属性确定服务实例。通常情况下,根据灰度属性可以确定唯一的服务实例。当根据灰度属性定位到多个服务实例时,可以根据随机算法、轮询算法、失败重试算法等确定唯一的服务实例。灰度属性可以包括服务实例当前提供的服务版本,以及提供的服务地址和连接端口,还可以包括通讯协议、ip、权重等。89.进一步地,服务实例的灰度属性从入口网关进行访问权限隔离,暴露于内部网络给服务实例的应用进行配置与相关计算,保证服务特性的信息安全性。灰度属性与服务实例绑定,定义在服务实例的元数据中,可以统一在微服务注册中心中管理。例如,注册中心可以包括redis(remotedictionaryserver,即远程字典服务)、zookeeper(分布式系统的可靠协调系统)、eureka(springcloud初代注册中心)、nacos(阿里开源集注册中心配置中心一体化微服务组件)等。通过开启配置灰度属性访问权限,微服务框架中的任意节点都可以通过注册中心服务列表访问获取各个服务实例的灰度属性。90.灰度属性的生成可脱离人工配置。具有管道流特性的灰度属性结合云原生架构,可以通过配置管道发布策略自动生成,例如服务版本、发布时间戳、ip、端口号等属性,每次服务发布都会更新此类属性;其余无法借助管道生成的灰度属性例如服务名、依赖引用版本、灰度检测端口等可以根据已生成的灰度属性自主感知生成,通过可自动生成的灰度属性完全支持区分各服务实例节点。此外,服务元数据也支持人工配置,运维人员可进入注册中心服务列表配置服务元数据内容。91.本实施例中通过预先配置服务实例的灰度属性,便于对每个服务实例准确进行寻址定位,且灰度属性的生成支持人工配置和根据预设的策略自动生成,在满足配置灵活性的同时也支持人工干预性。92.在本公开的一些实施例中,上述步骤s10之前包括:93.在所述微服务架构的入口网关处为所述用户请求嵌入显示灰度因子;所述显式灰度因子以键值对的形式存储在请求域中;所述显式灰度因子用于指示所述用户请求适配的所述调用链路。94.具体地,在入口网关处为用户请求嵌入显式灰度因子,显式灰度因子可以决定客户端请求适配发布策略配置中的哪条调用链路。微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。因此,一个用户请求可能需要调用很多个服务,一个用户请求可能涉及多个服务实例参与,多个服务实例的参与顺序构成了调用链路。将显式灰度因子以键值对(key-value)的形式缓存在rpc(remoteprocedurecall,远程过程调用)请求域中,与用户请求的生命周期完全一致。95.本实施例通过在用户请求进入网关时为用户请求嵌入显式灰度因子,便于后续匹配发布策略,以更好的适配发布策略,实现定制化蓝绿灰度发布。96.在本公开的一些实施例中,如图3所示,上述步骤s20包括:97.步骤s22:根据所述显式灰度因子,计算与所述显式灰度因子相匹配的发布策略。98.具体地,可以通过灰度负载均衡算法解析显式灰度因子,将微服务框架中预先设置的发布策略的发布条件和显式灰度因子进行匹配。匹配结果可以是匹配到蓝绿发布策略和匹配到灰度发布策略。99.步骤s24:根据与所述显式灰度因子相匹配的发布策略获得所述用户请求的服务特性。100.具体地,服务特性可以是指用于表征应用发布服务需求的一个或多个参数,可以根据匹配到的发布策略获得服务特性。101.本实施例通过灰度负载均衡算法解析显式灰度因子并结合匹配到的发布策略得出服务特性,便于适配染色请求与调用链路,实现定制化蓝绿灰度发布。102.在本公开的一些实施例中,如图4所示,上述步骤s30包括:103.步骤s312:在匹配到所述蓝绿发布策略的情况下,根据所述用户请求的服务特性获取与所述用户请求适配的调用链路。104.具体地,将发布条件与显式灰度因子进行匹配,若显式灰度因子满足蓝绿发布策略的发布条件,即显式灰度因子匹配到蓝绿发布策略。根据显式灰度因子获取与当前用户请求适配的调用链路。105.步骤s314:将所述调用链路的可访问服务实例的信息写入隐式灰度因子。106.具体地,灰度因子包括显式灰度因子和隐式灰度因子,显式灰度因子又可称为间接灰度因子,可以由客户端主动写入,也可交由调用链路中的某一节点自动生成。显式灰度因子无法直接参与负载均衡算法的计算逻辑决定调用方向。显式灰度因子通常是一个或一群具有请求特性的参数,例如token(令牌,代表执行某些操作的权利的对象)、用户手机号、请求时间、客户端版本、流水号等。用户请求在经过入口网关时,入口网关从微服务架构中读取发布策略,并以发布策略的发布条件与用户请求的显式灰度因子进行匹配。匹配结果可以是匹配到蓝绿发布策略和匹配到灰度发布策略。107.隐式灰度因子又可称为直接灰度因子,用于表征用户请求与调用链路的染色体。隐式灰度因子直接记录了所有可访问服务实例的目标信息,包含服务版本、区域、集群等,与服务特性可一一对应。在匹配到所述蓝绿发布策略的情况下,将所述调用链路的可访问服务实例的信息写入隐式灰度因子。隐式灰度因子可以记录调用链路中的服务信息,在进行链路下游调用时,ribbon(微服务客户端负载均衡器)会基于负载均衡算法和隐式灰度因子计算出调用服务准确地址。便于后续根据显式灰度因子和隐式灰度因子响应所述用户请求。108.本实施例中通过将发布条件与显式灰度因子进行匹配获得适配的发布策略,根据适配的发布策略获取服务特性,并将获取到适配的调用链路中的服务信息更新写入隐式灰度因子,使得隐式灰度因子与服务特性一一对应,使得本方法满足了更多的业务场景,可以根据不同场合提供适配的服务特性。109.本实施例中将显式灰度因子匹配至蓝绿发布策略即蓝绿发布的情况下,将调用链路的服务信息记录在隐式灰度因子中,便于后续根据灰度因子对用户请求进行染色。110.在本公开的一些实施例中,如图5所示,上述步骤s30包括:111.步骤s322:在匹配到所述灰度发布策略的情况下,根据所述用户请求的服务特性获取可访问服务实例的比例,将所述可访问服务实例的比例写入隐式灰度因子。112.具体地,将发布条件与显式灰度因子进行匹配,若显式灰度因子满足灰度发布策略的发布条件,即显式灰度因子匹配到灰度发布策略。根据灰度发布策略确定可访问服务实例的比例,即将灰度版本的比例写入隐式灰度因子。113.步骤s324:根据所述可访问服务实例的比例和灰度负载均衡算法计算所述应用调用链路中的调用站点。114.具体地,根据可访问服务实例的比例,以及灰度负载均衡算法计算出最终的调用站点。本实施例中基于ribbon(微服务客户端负载均衡器)重写灰度负载均衡算法,灰度负载均衡算法可覆盖网关的负载均衡算法,亦可覆盖基于feign或resttemplate进行http调用集成的负载均衡策略。feign是一个声明式webservice客户端。使用feign能让编写webservice客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持jax-rs标准的注解。resttemplate是从spring3.0开始支持的一个http请求工具,它提供了常见的rest请求方案的模版,例如get请求、post请求、put请求、delete请求以及一些通用的请求执行方法exchange以及execute。115.本实施例中将显式灰度因子匹配至灰度发布策略即灰度发布的情况下,获取灰度版本的比例,交由灰度负载均衡算法计算调用站点,将调用链路的服务信息记录在隐式灰度因子中,便于后续根据灰度因子对用户请求进行染色。116.在本公开的一些实施例中,如图6所示,所述蓝绿发布策略的步骤包括:117.步骤a10:对原始调用链路进行蓝色染色,灰度调用链路进行绿色染色,配置蓝色调用链路和绿色调用链路。118.具体地,蓝绿发布策略的调用链路可基于服务特性进行配置。由于微服务框架中服务实例的复杂调用关系,仅仅根据不同服务版本的服务实例的比例进行应用发布将导致调用链路混乱无法实现长调用链路的应用发布。例如,在一次服务版本上线支持新功能后,服务实例a、b和c线上各存在两个版本,原始稳定版本为v-stable,支持新功能的灰度版本为v-latest。假设新功能涉及到服务实例a调用服务实例b再调用服务实例c的链路,单从灰度发布的角度来讲,如果要向灰度版本切换20%的客群流量,只需要将原始服务实例与最新服务实例的线上比例调整与之对应即可。但是实际情况灰度调用链路为a(v-latest)-》b(v-latest)-》c(v-latest),原始调用链路为a(v-stable)-》b(v-stable)-》c(v-stable),仅通过调整不同服务版本比例无法实现长链路的灰度发布。基于此,对原始调用链路进行蓝色染色,灰度调用链路进行绿色染色,仅配置蓝绿两种调用链路。119.步骤a20:根据所述显式灰度因子确定适配的调用链路,将所述用户请求染色为对应的调用链路的颜色,并将染色信息缓存至请求域。120.具体地,用户请求进入入口网关时,入口网关通过用户请求附带的显式灰度因子(即调用链路的染色体)结合配置的发布策略选择适配的蓝绿调用链路,同时将用户请求染色为对应的调用链路颜色,并缓存到请求域中,当请求选择下一站的服务调用节点时通过适配调用链路中定义的服务版本寻址调用链的下一站,从而实现长链路的灰度发布。121.本实施例通过对调用链路进行染色,避免了只调节提供稳定版本和灰度版本的服务实例的比例造成的调用链路的混乱,以及通过链路染色便于调用过程中准确寻址,提高了发布准确性。122.在本公开的一些实施例中,所述配置蓝色调用链路和绿色调用链路包括:123.在所述入口网关处配置所述调用链路;或者在所述微服务实例节点配置所述调用链路。124.具体地,在进行链路染色时,可以在入口网关处(即调用链路的入口处)配置调用链路的全链路,减少后续配置的操作,使得调用链路配置轻量化。或者,为实现调用链路配置的定制化和个性化,可以在微服务实例节点处配置调用链路。125.进一步地,在调用链路配置中,蓝绿灰度发布策略可以统一交由微服务架构中的配置中心进行管理。配置中心可以包括且不仅限于redis(remotedictionaryserver,即远程字典服务)、springcloudconfig(分布式配置中心)、apollo(分布式配置中心)、zookeeper(分布式系统的可靠协调系统)、nacos(阿里开源集注册中心配置中心一体化微服务组件)等配置中心组件。在微服务架构的应用与配置中心的交互中,通过客户端主动拉取与服务端主动推送的方式可实现发布策略的秒级切换感知。发布策略可以只配置于入口网关作用全链路,也可以单独配置于各个微服务读取实现蓝绿灰度发布染色截断,即可以在微服务机构中引入“环境-》群组-》集群-》微服务”的数据结构作为隔离控制因素实现发布策略隔离。发布策略可以通过网关作用于全链路,也可以实现基于“环境-》群组-》集群-》微服务”的数据结构进行发布策略隔离,不仅可以灵活配置和切换发布策略,还可以在复杂的应用环境中缩小一处异常造成的范围影响。126.本实施例在进行链路染色时既可以在入口网关处进行染色,减少后续配置的操作,使得调用链路配置轻量化;还可以在微服务实例节点处配置调用链路的染色,实现染色的定制化和个性化。127.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。128.基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的基于微服务架构的请求数据处理方法的基于微服务架构的应用发布处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于微服务架构的应用发布处理装置实施例中的具体限定可以参见上文中对于基于微服务架构的请求数据处理方法的限定,在此不再赘述。129.在本公开的一些实施例中,如图7所示,提供了一种基于微服务架构的应用发布处理装置。该装置z00可以包括:130.灰度因子模块z10,用于接收用户请求,并获取所述用户请求的显式灰度因子;131.发布策略匹配模块z20,用于将所述显式灰度因子与发布策略进行匹配,确定与所述用户请求相适配的发布策略;所述发布策略包括蓝绿发布策略和灰度发布策略;132.服务调用模块z30,用于根据与所述用户请求相适配的发布策略和用户请求确定所述用户请求的调用链路;133.响应模块z40,用于基于所述用户请求的调用链路响应所述用户请求。134.在本公开的一些实施例中,所述装置还包括灰度属性模块,用于为微服务架构中的服务实例定义灰度属性,所述灰度属性与所述服务实例绑定存储在所述服务实例的元数据中;所述灰度属性包括服务版本、服务地址、连接端口。135.在本公开的一些实施例中,所述装置还包括请求嵌入模块,用于在所述微服务架构的入口网关处为所述用户请求嵌入显式灰度因子;所述显式灰度因子以键值对的形式存储在请求域中;所述显式灰度因子用于指示所述用户请求适配的所述调用链路。136.在本公开的一些实施例中,如图8所示,所述策略匹配模块z20包括:137.灰度因子单元z22,用于根据所述显式灰度因子,计算与所述显式灰度因子相匹配的发布策略;138.服务特性单元z24,用于根据与所述显式灰度因子相匹配的发布策略获得所述用户请求的服务特性。139.在本公开的一些实施例中,如图9所示,所述调用链路模块z30包括:140.蓝绿发布策略单元z32,用于在匹配到所述蓝绿发布策略的情况下,根据所述用户请求的服务特性获取与所述用户请求适配的调用链路;141.服务信息单元z36,用于将所述调用链路的可访问服务实例的信息写入隐式灰度因子。142.在本公开的一些实施例中,如图10所示,所述调用链路模块z30包括:143.灰度发布策略单元z34,在匹配到所述灰度发布策略的情况下,根据所述用户请求的服务特性获取可访问服务实例的比例;144.服务信息单元z36还用于将所述可访问服务实例的比例写入隐式灰度因子;145.调用站点单元z38,用于根据所述可访问服务实例的比例和灰度负载均衡算法计算所述应用调用链路中的调用站点。146.在本公开的一些实施例中,如图11所示,本装置还包括染色模块z50,所述染色模块z50包括:147.链路染色单元z52,用于对原始调用链路进行蓝色染色,灰度调用链路进行绿色染色,配置蓝色调用链路和绿色调用链路;148.请求染色单元z54,用于根据所述显式灰度因子确定适配的调用链路,将所述用户请求染色为对应的调用链路的颜色,并将染色信息缓存至请求域。149.在本公开的一些实施例中,如图12所示,所述染色模块z50还包括:150.染色配置单元z56,用于在所述入口网关处配置所述调用链路;151.或者在所述微服务实例节点配置所述调用链路。152.上述基于微服务架构的应用发布处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。153.基于前述基于微服务架构的请求数据处理方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于微服务架构的请求数据处理方法。154.本领域技术人员可以理解,图中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。155.基于前述基于微服务架构的请求数据处理方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。156.基于前述基于微服务架构的请求数据处理方法的实施例描述,在本公开提供的另一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。157.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。158.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistiverandomaccessmemory,mram)、铁电存储器(ferroelectricrandomaccessmemory,fram)、相变存储器(phasechangememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。159.在本说明书的描述中,参考术语“有些实施例”、“其他实施例”、“理想实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特征包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性描述不一定指的是相同的实施例或示例。160.可以理解的是,本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同/相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。相关之处参见其他方法实施例的描述说明即可。161.上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。162.以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1