CN112653579A - 一种基于OpenResty的灰度发布方法及相关设备 - Google Patents

一种基于OpenResty的灰度发布方法及相关设备 Download PDF

Info

Publication number
CN112653579A
CN112653579A CN202011487999.9A CN202011487999A CN112653579A CN 112653579 A CN112653579 A CN 112653579A CN 202011487999 A CN202011487999 A CN 202011487999A CN 112653579 A CN112653579 A CN 112653579A
Authority
CN
China
Prior art keywords
environment
gray scale
configuration
forwarding address
forwarding
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
CN202011487999.9A
Other languages
English (en)
Other versions
CN112653579B (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.)
China Life Insurance Co Ltd China
Original Assignee
China Life Insurance Co Ltd China
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 China Life Insurance Co Ltd China filed Critical China Life Insurance Co Ltd China
Priority to CN202011487999.9A priority Critical patent/CN112653579B/zh
Publication of CN112653579A publication Critical patent/CN112653579A/zh
Application granted granted Critical
Publication of CN112653579B publication Critical patent/CN112653579B/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本说明书一个或多个实施例提供一种基于OpenResty的灰度发布方法及相关设备;所述方法包括:预先加载配置更新微服务中的配置项;接收客户端发出的原始访问请求;利用配置项对原始访问请求进行处理,得到转发地址和最终统一资源标识符;当转发地址为默认环境转发地址时,将携带有请求头和最终统一资源标识符的最终访问请求转发给线上服务器,当转发地址为灰度环境转发地址时,将最终访问请求转发给灰度服务器。本方法通过OpenResty网关对客户端的访问请求进行处理,将访问请求按照转发地址转发给对应的线上服务器或灰度服务器,保证了线上环境与灰度环境的隔离性,实现了灰度环境的动态扩展热加载能力,扩展了灰度发布策略的个性化定制能力。

Description

一种基于OpenResty的灰度发布方法及相关设备
技术领域
本说明书一个或多个实施例涉及灰度发布技术领域,尤其涉及一种基于OpenResty的灰度发布方法及相关设备。
背景技术
目前客户端对应后台使用基于Spring、Tomcat和Docker的微服务架构方案,可以实现微服务线上的用户无感知升级,但升级后仍需花费相当多的人力及时间做对应的验证,如果升级存在问题,需要进行版本的回退,在验证期间影响线上相关功能的正常使用,因此目前线上环境的升级部署仍选择在客户端使用量较少的凌晨时间段进行,严重影响了相关运维人员及开发人员的作息,增加了工作量。同时,有部分业务功能需要在线上环境做一段时间的小部分用户的灰度验证,无问题后再将该功能提供给全体用户。由此可见,灰度发布这一技术尤为重要。
灰度发布又名金丝雀发布,是指在黑与白之间,能够平滑过渡的一种发布方式。在灰度发布策略下,线上可以同时运行两套甚至多套环境,且线上环境和灰度环境为相互分隔状态,仅有灰度客户端可以访问到后台灰度环境,线上客户端仍访问后台线上环境。在此机制下,可在正常工作时间升级后台灰度环境,测试人员使用预先下发的灰度客户端进行验证,验证无问题后将线上环境切换为验证后的灰度环境,即可实现用户无感知的平滑切换。
现有的灰度发布技术,一般是使用Nginx的负载均衡策略,包括“轮询”、“固定权重”、“fair”和“根据IP或URL进行一致性哈希”。轮询为每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器掉线,能自动剔除。固定权重为指定轮询几率,权重值和访问比率成正比,用于后端服务器性能不均的情况。fair为按后端服务器的响应时间来分配请求,响应时间短的优先分配。根据IP或URL进行一致性哈希是按访问URL的哈希结果来分配请求,使每个URL定向到同一个后端服务器。
但是,除了“根据IP或URL进行一致性哈希”这一方法外,其他现有技术无法保证线上环境与灰度环境的隔离性;同时,现有技术需将所有的环境相关配置在配置文件中进行维护,无法实现灰度环境的动态扩展,即灰度环境配置文件无法实现热加载;此外,现有技术无法定制个性化灰度发布策略,即无法根据请求头或请求体的内容进行计算并确定最终要转发到哪个后台环境中。
发明内容
有鉴于此,本说明书一个或多个实施例的目的在于提出一种基于OpenResty的灰度发布方法及相关设备,以解决线上与灰度环境不能有效隔离、灰度环境配置文件不能热加载、灰度发布策略不能自定义的问题。
基于上述目的,本说明书一个或多个实施例提供了一种基于OpenResty的灰度发布方法,包括:
预先加载配置更新微服务中的配置项;
接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头;
利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址;
当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
基于同一发明构思,本说明书一个或多个实施例还提供了一种基于OpenResty的灰度发布装置,包括:
配置模块,被配置为预先加载配置更新微服务中的配置项;
接收模块,被配置为接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头;
处理模块,被配置为利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址;
转发模块,被配置为当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的基于OpenResty的灰度发布方法。
基于同一发明构思,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一所述的基于OpenResty的灰度发布方法。
从上面所述可以看出,本说明书一个或多个实施例提供的基于OpenResty的灰度发布方法及相关设备,通过OpenResty网关对客户端的访问请求进行处理,获取与客户端版本对应的转发地址,最终将访问请求按照转发地址转发给对应的线上服务器或灰度服务器,保证了线上环境与灰度环境的隔离性;同时,OpenResty网关将加载的配置项存储在共享内存中,可在线更改并实时应用,实现了灰度环境的动态扩展热加载能力;此外,使用请求头携带客户端版本信息,扩展了灰度发布策略的个性化定制能力。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一个或多个实施例的基于OpenResty的灰度发布方法的流程图;
图2为本说明书一个或多个实施例的基于OpenResty的灰度发布方法的配置关系图;
图3为本说明书一个或多个实施例的基于OpenResty的灰度发布方法处理流程图;
图4为本说明书一个或多个实施例的基于OpenResty的灰度发布装置结构示意图;
图5为本说明书一个或多个实施例的电子设备结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,客户端的后台多采用Spring、Tomcat和Docker相配合的微服务架构方案,来实现微服务线上的用户无感知升级。灰度发布这一技术的出现解决了新版本升级更新的问题。
但是,新的问题应运而生:现有的灰度发布技术多采用Nginx的负载均衡策略,包括“轮询”、“固定权重”、“fair”和“根据IP或URL进行一致性哈希”。轮询为每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器掉线,能自动剔除。固定权重为指定轮询几率,权重值和访问比率成正比,用于后端服务器性能不均的情况。fair为按后端服务器的响应时间来分配请求,响应时间短的优先分配。根据IP或URL进行一致性哈希是按访问URL的哈希结果来分配请求,使每个URL定向到同一个后端服务器。
上述四种负载均衡策略均有缺点。除了“根据IP或URL进行一致性哈希”这一策略外,其他现有技术无法保证线上环境与灰度环境的隔离性;同时,现有技术需将所有的环境相关配置在配置文件中进行维护,无法实现灰度环境的动态扩展,即灰度环境配置文件无法实现热加载;此外,现有技术无法定制个性化灰度发布策略,即无法根据请求头或请求体的内容进行计算并确定最终要转发到哪个后台环境中。
针对于上述现有技术中存在的问题,本说明书一个或多个实施例提出了一种基于OpenResty的灰度发布方法,通过OpenResty网关对客户端的访问请求进行处理,获取与客户端版本对应的转发地址,最终将访问请求按照转发地址转发给对应的线上服务器或灰度服务器,保证了线上环境与灰度环境的隔离性;同时,OpenResty网关将加载的配置项存储在共享内存中,可在线更改并实时应用,实现了灰度环境的动态扩展热加载能力;此外,使用请求头携带客户端版本信息,扩展了灰度发布策略的个性化定制能力。
以下,通过具体的实施例来详细说明本说明书一个或多个实施例的技术方案。
本说明书一个或多个实施例提供了一种基于OpenResty的灰度发布方法。参考图1,所述的基于OpenResty的灰度发布方法,包括以下步骤:
步骤S1、预先加载配置更新微服务中的配置项。
本实施例中,OpenResty网关首先使用定时任务从配置更新微服务中进行相关配置项的加载,加载后将配置项存储在共享内存中。其中,OpenResty网关的共享内存以key-value格式存储配置项数据。
在一些可选的实施例中,OpenResty的配置关系如图2所示。配置更新微服务使用定时任务从数据库中定时读取加载相关配置项,并提供对外的配置项查询接口。配置管理后台可以由管理员帐号登录,将配置项写入数据库中。此外,配置管理后台也可以查看读取OpenResty网关当前生效的配置,确认配置是否已经正常的加载到OpenResty网关之中。
可选的,配置管理后台可以对相关配置项进行管理,其中,相关配置项包括前后台版本关系配置、微服务灰度环境转发配置和中间层转发配置这3种配置类别。前后台版本关系配置包括客户端版本信息、前端版本信息、内部H5版本信息和外部静态资源版本信息与后台版本信息的对应关系。微服务灰度环境转发配置包括了微服务对应后台环境版本与灰度环境转发地址的对应关系。中间层转发配置则包括默认环境转发地址和原始统一资源标识符(Uniform Resource Identifier,URI)到最终统一资源标识符的转换规则。
OpenResty网关将加载的配置项存储在共享内存中,技术人员可以通过配置管理后台对共享内存中的配置项进行在线更改和热加载,实时修改配置项,实现了灰度环境的动态扩展能力。
步骤S2、接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头。
本步骤中,OpenResty网关在接收到客户端发出的原始访问请求后,对其进行解析,得到原始URI和请求头。其中,URI是一个用于标识访问请求的字符串,而请求头中则包含了客户端的各种版本信息。
在一些可选的实施例中,客户端可以包括手机APP客户端、平板客户端和电脑客户端等。每种客户端都可以包括线上客户端和灰度客户端,其中灰度客户端的客户端信息包括用户唯一id、地理位置、设备号、系统型号等多种信息。
作为一个可选的实施例,客户端可以将要携带的客户端版本信息、H5版本信息等信息放在原始访问请求的请求体中,而请求头中则负责携带其他信息。
此外,本步骤实施例除了由客户端发送访问请求,也可以由远端H5页面或是静态资源发送类似的访问请求,访问请求中包括的数据与客户端发送的请求数据类似,在此不再赘述。
步骤S3、利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址。
本实施例中,OpenResty网关利用上述实施例中的3种配置项对客户端发送过来的原始访问请求进行解析处理,得到客户端对应的转发地址和最终URI,其中,转发地址包括线上客户端对应的默认环境转发地址和灰度客户端对应的灰度环境转发地址。
具体的,参考图3,所述的OpenResty网关对原始访问请求的处理方法,包括以下步骤。
步骤S301、按固定格式正则匹配对原始URI进行解析,确认该访问请求中原始URI对应的微服务。
步骤S302、判断该微服务是否存在灰度环境。若该微服务不存在灰度环境,则使用默认版本号作为后台环境版本号。
步骤S303、若该微服务存在灰度环境,则对原始访问请求中的请求头按固定格式正则匹配的方式进行解析,获取请求头中携带的版本信息,包括客户端版本号、前端版本号等。
作为一个可选的实施例,请求头中携带的版本信息不仅限于版本号,还可以包括其他任何可以作为灰度下发因素的信息,例如地理位置、手机型号等。
使用请求头携带客户端版本信息,可以对请求头进行相对自由的自定义设置,令其携带多样化的数据,这扩展了灰度发布策略的个性化定制能力。
步骤S304、将各个版本信息有序拼装成字符串数组,再将字符串数组与前后台版本关系配置进行匹配,得到的值即为客户端请求对应的后台环境版本号。
在本步骤中,后台环境版本号的获取共包括3个子步骤:
步骤S3041、将版本信息转化为{版本维度,分隔符,版本数据}格式的数组。以N个版本维度、M个版本数据为例,转化而成的数组即为{“版本维度1”+分隔符+“AAA”,“版本维度2”+分隔符+“BBB”…“版本维度N”+分隔符+“MMM”}。
步骤S3042、提取数组中的所有非空子集,将非空子集逐一拼装成字符串并整合,最终即得到了字符串数组。
步骤S3043、将字符串数组中的字符串按从大到小的顺序排序,逐一与前后台版本关系配置中的关键(key)值进行匹配,得到的value值即为客户端请求对应的后台环境版本号。
上述3个步骤使用了key-value匹配的方式,匹配字符串对应的key值,即可得到后台环境版本号的value值。
步骤S305、判断对应微服务对应后台环境版本是否存在灰度环境。若不存在灰度环境,则根据后台环境版本号,从中间层转发配置中获取默认环境转发地址。
步骤S306、若存在灰度环境,则根据后台环境版本号,从微服务灰度环境转发配置中获取对应的灰度环境转发地址。
步骤S307、根据中间层转发配置中的URI转换规则,包括匹配字符串和替换字符串规则,将原始访问请求中的原始URI转换为最终URI。
在一些可选的实施例中,OpenResty网关的逻辑处理除了由常规的l ua脚本完成外,还可以采用C语言进行同样的逻辑处理操作,实施方法更加多样化。
在前述实施例的基于OpenResty的灰度发布方法,于得到转发地址和最终URI之后,还包括以下步骤:
步骤S4、当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
本步骤中,OpenResty网关将携带有请求头和最终URI的最终访问请求转发给服务器。当转发地址为默认环境转发地址时,转发给线上服务器,当转发地址为灰度环境转发地址时,则转发给灰度服务器。线上服务器对应线上客户端、灰度服务器对应灰度客户端,这样保证了线上环境与灰度环境的隔离性。
在一些可选的实施例中,在前述实施例的基于OpenResty的灰度发布方法,于转发给服务器之后,还包括以下步骤:
接收线上服务器反馈的线上版本数据,将线上版本数据同步反馈给线上客户端。或是接收灰度服务器反馈的灰度版本数据,将灰度版本数据同步反馈给灰度客户端。
由上述实施例可知,从客户端发出访问请求,到服务器反馈版本数据,形成了数据传输的闭环,实现了基于OpenResty的灰度发布方法。此外,本说明书提供的方法不仅可以应用于灰度发布场景,还可以应用于分流策略等,在此不再赘述。
由上述实施例可见,本说明书一个或多个实施例提供的基于OpenResty的灰度发布方法及相关设备,通过OpenResty网关对客户端的访问请求进行处理,获取与客户端版本对应的转发地址,最终将访问请求按照转发地址转发给对应的线上服务器或灰度服务器,保证了线上环境与灰度环境的隔离性;同时,OpenResty网关将加载的配置项存储在共享内存中,可在线更改并实时应用,实现了灰度环境的动态扩展热加载能力;此外,使用请求头携带客户端版本信息,扩展了灰度发布策略的个性化定制能力。
可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。
需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,本说明书一个或多个实施例还提供了一种基于OpenResty的灰度发布装置。参考图4,所述的基于OpenResty的灰度发布装置,包括:
配置模块401,被配置为预先加载配置更新微服务中的配置项;
接收模块402,被配置为接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头;
处理模块403,被配置为利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址;
转发模块404,被配置为当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的基于OpenResty的灰度发布方法。
图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
基于同一发明构思,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一实施例所述的基于OpenResty的灰度发布方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (10)

1.一种基于OpenResty的灰度发布方法,其特征在于,包括:
预先加载配置更新微服务中的配置项;
接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头;
利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址;
当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
2.根据权利要求1所述的基于OpenResty的灰度发布方法,其特征在于,所述配置项由配置管理后台写入数据库中,并被所述配制配置更新微服务从所述数据库中定时读取并加载;
所述配置项被加载后存储在共享内存中。
3.根据权利要求1所述的基于OpenResty的灰度发布方法,其特征在于,所述配置项包括前后台版本关系配置、微服务灰度环境转发配置和中间层转发配置;
所述前后台版本关系配置包括客户端版本信息、前端版本信息、内部H5版本信息和外部静态资源版本信息与后台版本信息的对应关系;
所述微服务灰度环境转发配置包括微服务对应后台环境版本与所述灰度环境转发地址的对应关系;
所述中间层转发配置包括所述默认环境转发地址和所述原始统一资源标识符到所述最终统一资源标识符的转换规则。
4.根据权利要求1所述的基于OpenResty的灰度发布方法,其特征在于,所述客户端包括手机APP客户端、平板客户端和电脑客户端;每种所述客户端包括线上客户端和灰度客户端。
5.根据权利要求1至4中任意一项所述的基于OpenResty的灰度发布方法,其特征在于,所述利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符,具体包括:
解析所述原始统一资源标识符,确认所述原始访问请求对应的微服务;
判断所述微服务是否存在灰度环境;
若存在,则解析所述请求头,获取包括客户端版本号和前端版本号的版本信息;将所述版本信息拼装成字符串数组,与所述前后台版本关系配置进行匹配,得到后台环境版本号;
若不存在,则使用默认版本号作为所述后台环境版本号;
判断对应所述微服务对应后台环境版本是否存在灰度环境;
若存在,则根据所述后台环境版本号,从所述微服务灰度环境转发配置中获取对应的所述灰度环境转发地址;
若不存在,则根据所述后台环境版本号,从所述中间层转发配置中获取所述默认环境转发地址;
根据所述中间层转发配置中的所述转换规则,将所述原始统一资源标识符,转换为所述最终统一资源标识符。
6.根据权利要求5所述的基于OpenResty的灰度发布方法,其特征在于,所述将所述版本信息拼装成字符串数组,与所述前后台版本关系配置进行匹配,得到后台环境版本号,具体包括:
将所述版本信息转化为{版本维度,分隔符,版本数据}格式的数组;
提取所述数组中的非空子集,将所述非空子集拼装成字符串并整合,得到所述字符串数组;
将所述字符串数组中的所述字符串按从大到小的顺序排序,逐一与所述前后台版本关系配置中的关键值进行匹配,得到所述后台环境版本号。
7.根据权利要求1所述的基于OpenResty的灰度发布方法,其特征在于,所述灰度发布方法,还包括:
接收所述线上服务器反馈的线上版本数据,将所述线上版本数据反馈给所述客户端;
接收所述灰度服务器反馈的灰度版本数据,将所述灰度版本数据反馈给所述客户端。
8.一种基于OpenResty的灰度发布装置,其特征在于,包括:
配置模块,被配置为预先加载配置更新微服务中的配置项;
接收模块,被配置为接收客户端发出的原始访问请求;所述原始访问请求包括原始统一资源标识符和请求头;
处理模块,被配置为利用所述配置项对所述原始访问请求进行处理,得到转发地址和最终统一资源标识符;所述转发地址包括默认环境转发地址和灰度环境转发地址;
转发模块,被配置为当所述转发地址为所述默认环境转发地址时,将携带有所述请求头和所述最终统一资源标识符的最终访问请求转发给线上服务器,当所述转发地址为所述灰度环境转发地址时,将所述最终访问请求转发给灰度服务器。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1至7任意一项所述的方法。
CN202011487999.9A 2020-12-16 2020-12-16 一种基于OpenResty的灰度发布方法及相关设备 Active CN112653579B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011487999.9A CN112653579B (zh) 2020-12-16 2020-12-16 一种基于OpenResty的灰度发布方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011487999.9A CN112653579B (zh) 2020-12-16 2020-12-16 一种基于OpenResty的灰度发布方法及相关设备

Publications (2)

Publication Number Publication Date
CN112653579A true CN112653579A (zh) 2021-04-13
CN112653579B CN112653579B (zh) 2023-05-23

Family

ID=75354433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011487999.9A Active CN112653579B (zh) 2020-12-16 2020-12-16 一种基于OpenResty的灰度发布方法及相关设备

Country Status (1)

Country Link
CN (1) CN112653579B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542387A (zh) * 2021-07-09 2021-10-22 平安银行股份有限公司 系统发布方法、装置、电子设备及存储介质
CN114153526A (zh) * 2021-12-01 2022-03-08 北京百度网讯科技有限公司 基于代理的灰度配置方法、装置、电子设备和介质
CN116755764A (zh) * 2023-08-22 2023-09-15 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统
CN117032991A (zh) * 2023-10-08 2023-11-10 宁波银行股份有限公司 一种灰度发布方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017071425A1 (zh) * 2015-10-29 2017-05-04 腾讯科技(深圳)有限公司 版本更新方法及装置
CN109787830A (zh) * 2019-01-21 2019-05-21 北京京东尚科信息技术有限公司 灰度发布控制方法、装置、系统、电子设备及存储介质
CN109857409A (zh) * 2019-01-16 2019-06-07 深圳壹账通智能科技有限公司 基于微服务网关的数据处理方法、装置及计算机设备
WO2019140829A1 (zh) * 2018-01-17 2019-07-25 平安科技(深圳)有限公司 电子装置、应用升级版本发布的方法及存储介质
WO2020181684A1 (zh) * 2019-03-12 2020-09-17 平安科技(深圳)有限公司 管理灰度发布的方法、系统、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017071425A1 (zh) * 2015-10-29 2017-05-04 腾讯科技(深圳)有限公司 版本更新方法及装置
WO2019140829A1 (zh) * 2018-01-17 2019-07-25 平安科技(深圳)有限公司 电子装置、应用升级版本发布的方法及存储介质
CN109857409A (zh) * 2019-01-16 2019-06-07 深圳壹账通智能科技有限公司 基于微服务网关的数据处理方法、装置及计算机设备
CN109787830A (zh) * 2019-01-21 2019-05-21 北京京东尚科信息技术有限公司 灰度发布控制方法、装置、系统、电子设备及存储介质
WO2020181684A1 (zh) * 2019-03-12 2020-09-17 平安科技(深圳)有限公司 管理灰度发布的方法、系统、设备及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542387A (zh) * 2021-07-09 2021-10-22 平安银行股份有限公司 系统发布方法、装置、电子设备及存储介质
CN113542387B (zh) * 2021-07-09 2023-07-04 平安银行股份有限公司 系统发布方法、装置、电子设备及存储介质
CN114153526A (zh) * 2021-12-01 2022-03-08 北京百度网讯科技有限公司 基于代理的灰度配置方法、装置、电子设备和介质
CN116755764A (zh) * 2023-08-22 2023-09-15 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统
CN116755764B (zh) * 2023-08-22 2023-11-17 山东浪潮数字商业科技有限公司 一种自动伸缩的无侵入式灰度发布系统
CN117032991A (zh) * 2023-10-08 2023-11-10 宁波银行股份有限公司 一种灰度发布方法、装置及系统
CN117032991B (zh) * 2023-10-08 2024-01-26 宁波银行股份有限公司 一种灰度发布方法、装置及系统

Also Published As

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

Similar Documents

Publication Publication Date Title
CN112653579B (zh) 一种基于OpenResty的灰度发布方法及相关设备
CN108664331B (zh) 分布式数据处理方法及装置、电子设备、存储介质
US11240290B2 (en) Application download method and apparatus, application sending method and apparatus, and system
CN107276842B (zh) 接口测试方法、装置及电子设备
US11882154B2 (en) Template representation of security resources
US8856365B2 (en) Computer-implemented method, computer system and computer readable medium
WO2021203918A1 (zh) 用于处理模型参数的方法和装置
WO2022048141A1 (zh) 一种图像处理方法及装置、计算机可读存储介质
US9128886B2 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
CN113626512A (zh) 数据处理方法、装置、设备及可读存储介质
CN111159265B (zh) 一种etl数据迁移方法和系统
CN112154417A (zh) 经由仿真网络通信信道在应用的单机版本和基于Web的版本之间共享代码库
CN115811481B (zh) 一种交互服务测试方法、装置、计算机设备及存储介质
CN107395737A (zh) 访问网络资源的方法、装置、系统及计算机可读存储介质
CN112965767B (zh) 作业的处理方法和装置、电子设备和存储介质
CN114090083B (zh) 一种可视化组件配置方法、装置、设备及存储介质
CN114064429A (zh) 审计日志的采集方法、装置、存储介质和服务器
CN115061785A (zh) 信息下发方法、装置、存储介质及服务器
CN113704120A (zh) 数据传输方法、装置、设备及存储介质
CN113377423A (zh) 提供服务的方法、装置及电子设备
CN114817794A (zh) 网页内容控制方法、装置、设备及介质
CN114244912A (zh) 数据传输方法、装置、计算机设备及存储介质
CN112182083A (zh) 文件生成方法、装置、设备及存储介质
CN113760382B (zh) 一种插件启动方法、装置、终端设备及存储介质
CN110489469B (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