灰度发布方法和系统技术方案

技术编号:15541004 阅读:62 留言:0更新日期:2017-06-05 10:37
本发明专利技术提出了一种灰度发布系统,该系统包括:Redis服务器和Nginx服务器;Nginx服务器用于查找Cache里面是否存在分流策略标识,若不存在,则从Redis服务器中预设的位置读取当前分流策略标识,根据当前分流策略标识查找内存中是否存在与当前分流策略标识对应的策略解析文件和用户信息解析文件,若不存在,则根据当前分流策略标识采用加载字符串的方式将Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中,根据策略解析文件解析出的分流策略进行发布。在这个过程中,当需要新增分流策略时,不需要reload或重启Nginx服务器。此外,还提出了一种灰度发布方法。

Grayscale publishing method and system

The invention provides a gray distribution system, the system includes a Redis server and Nginx server; the Nginx server is used to find Cache if there is a triage strategy logo, if it is not, from the Redis server in the preset position to read the current diversion strategy identification, according to the current distribution strategy in the presence of identity memory search and strategy analysis document the current diversion strategy corresponds to the identifier and user information parsing the file, if it is not, according to the current distribution strategy is identified by way of loading string will exist in the form of a string of strategy parse the file in the Redis server and the user information through the Lua parse the file is loaded into memory, were released according to the shunt strategy parsed file parsing. In this process, you don't need to reload or restart the Nginx server when you need a new split policy. In addition, a grayscale publishing method is also proposed.

【技术实现步骤摘要】
灰度发布方法和系统
本专利技术涉及计算机处理领域,特别是涉及一种灰度发布方法和系统。
技术介绍
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。ABtest就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。ABtest是依据系统中配置的分流策略进行分流工作的,在测试阶段,如果发现问题,往往需要在Redis服务器中新增分流策略,而每个分流策略都会对应一个策略解析文件和用户信息解析文件,由于传统的分流策略对应的策略解析文件和用户信息解析文件是存储在Nginx服务器的内存中的,所以若新增分流策略,则需要将新增分流策略对应的策略解析文件和用户信息解析文件上传到Nginx服务器,这个过程中需要重新加载(reload)或重启Nginx服务器,而重启Nginx服务器不仅耗时而且十分麻烦。
技术实现思路
基于此,有必要针对上述问题,提出一种无需重启Nginx服务器就可以动态新增分流策略的灰度发布方法和装置。一种灰度发布系统,所述系统包括:Redis服务器,用于接收上传的分流策略以及与所述分流策略对应的策略解析文件和用户信息解析文件并进行存储,其中,所述策略解析文件和用户信息解析文件是以字符串的形式进行存储的;Nginx服务器,用于查找Cache里面是否存在分流策略标识,若不存在,则从所述Redis服务器中预设的位置读取当前分流策略标识;所述Nginx服务器还用于根据所述当前分流策略标识查找内存中是否存在与所述当前分流策略标识对应的策略解析文件和用户信息解析文件,若不存在,则根据所述当前分流策略标识采用加载字符串的方式将所述Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中;所述Nginx服务器还用于根据所述策略解析文件解析出的分流策略进行发布。在其中一个实施例中,所述Nginx服务器还用于根据所述当前分流策略标识查找与该当前分流策略标识对应的策略解析文件ID和用户信息解析文件ID,根据所述策略解析文件ID和用户信息解析文件ID通过加载字符串的方式将Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中并转换为Table的形式进行存储。在其中一个实施例中,所述Nginx服务器还用于采用所述策略解析文件对相应的分流策略进行解析,解析出分流策略中至少一种参数信息与转发路径之间的对应关系,并将所述至少一种参数信息与转发路径之间的对应关系保存到Cache。在其中一个实施例中,所述Nginx服务器还用于接收客户端发送的请求,提取所述请求中的用户信息,根据所述用户信息解析文件中预设的提取方式从所述用户信息中提取出至少一个参数信息,将提取出的至少一种参数信息作为用户特征,根据Cache中存储的至少一种参数信息与转发路径之间的对应关系确定出与所述用户特征对应的转发路径,根据所述转发路径进行对应的转发。在其中一个实施例中,所述Nginx服务器还用于采用所述策略解析文件对相应的分流策略进行解析,解析出对应的百分比策略,根据所述百分比策略进行对应的发布。一种灰度发布方法,所述方法包括:Nginx服务器根据预设的规则定时查找Cache里面是否存在分流策略标识,若不存在,则从所述Redis服务器中预设的位置读取当前分流策略标识;根据所述当前分流策略标识查找内存中是否存在与所述当前分流策略标识对应的策略解析文件和用户信息解析文件,若内存中不存在所述当前分流策略标识对应的策略解析文件和用户信息解析文件,则根据所述当前分流策略标识采用加载字符串的方式将所述Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中;根据所述策略解析文件解析出的分流策略进行发布。在其中一个实施例中,所述若内存中不存在所述当前分流策略标识对应的策略解析文件和用户信息解析文件,则根据所述当前分流策略标识采用加载字符串的方式将所述Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中的步骤包括:若内存中不存在所述当前分流策略标识对应的策略解析文件和用户信息解析文件,则根据所述当前分流策略标识查找与该当前分流策略标识对应的策略解析文件ID和用户信息解析文件ID;根据所述策略解析文件ID和用户信息解析文件ID通过加载字符串的方式将Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中并转换为Table的形式进行存储。在其中一个实施例中,所述根据所述策略解析文件解析出的分流策略进行发布的步骤包括:采用所述策略解析文件对相应的分流策略进行解析,解析出分流策略中至少一种参数信息与转发路径之间的对应关系,并将所述至少一种参数信息与转发路径之间的对应关系保存到Cache;根据Cache中的至少一种参数信息与转发路径之间的对应关系进行发布。在其中一个实施例中,所述方法还包括:接收客户端发送的请求,提取所述请求中的用户信息;根据所述用户信息解析文件中预设的提取方式从所述用户信息中提取出至少一个参数信息,将提取出的至少一种参数信息作为用户特征;根据Cache中存储的至少一种参数信息与转发路径之间的对应关系确定出与所述用户特征对应的转发路径,根据所述转发路径进行对应的转发。在其中一个实施例中,所述根据所述策略解析文件解析出的分流策略进行发布的步骤包括:采用所述策略解析文件对相应的分流策略进行解析,解析出对应的百分比策略,根据所述百分比策略进行对应的发布。上述灰度发布方法和系统,当需要新增分流策略时,只需要将新增分流策略对应的策略解析文件和用户信息解析文件转换为字符串上传到Redis服务器,Nginx服务器当需要使用新增的策略解析文件和用户信息解析文件时,则从Redis服务器中查找对应的新增策略解析文件和用户信息解析文件,然后采用加载字符串的方式将Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存,然后根据策略解析文件解析出的分流策略进行发布。在这个过程中,当需要新增分流策略时,只需要将与该分流策略对应的策略解析文件和用户信息解析文件转换成字符串存到Redis服务器,Nginx服务器能够动态的从Redis服务器中加载新增的策略解析文件和用户信息解析文件到内存中,不需要reload和重启Nginx服务器,简单易操作,节省时间,从而提高了相应的转发效率。附图说明图1为一个实施例中灰度发布系统的架构图;图2为一个实施例中灰度发布方法的流程图;图3为一个实施例中根据当前分流策略加载策略解析文件和用户信息解析文件的方法流程图;图4为另一个实施例中灰度发布方法的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提出了一种灰度发布系统,该系统包括:Redis服务器102和Nginx服务器104;其中,Redis服务器102,用于接收上传的分流策略以及本文档来自技高网...
灰度发布方法和系统

【技术保护点】
一种灰度发布系统,所述系统包括:Redis服务器,用于接收上传的分流策略以及与该分流策略对应的策略解析文件和用户信息解析文件并进行存储,其中,所述策略解析文件和用户信息解析文件是以字符串的形式进行存储的;Nginx服务器,用于查找Cache里面是否存在分流策略标识,若不存在,则从所述Redis服务器中预设的位置读取当前分流策略标识;所述Nginx服务器还用于根据所述当前分流策略标识查找内存中是否存在与所述当前分流策略标识对应的策略解析文件和用户信息解析文件,若不存在,则根据所述当前分流策略标识采用加载字符串的方式将所述Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中;所述Nginx服务器还用于根据所述策略解析文件解析出的分流策略进行发布。

【技术特征摘要】
1.一种灰度发布系统,所述系统包括:Redis服务器,用于接收上传的分流策略以及与该分流策略对应的策略解析文件和用户信息解析文件并进行存储,其中,所述策略解析文件和用户信息解析文件是以字符串的形式进行存储的;Nginx服务器,用于查找Cache里面是否存在分流策略标识,若不存在,则从所述Redis服务器中预设的位置读取当前分流策略标识;所述Nginx服务器还用于根据所述当前分流策略标识查找内存中是否存在与所述当前分流策略标识对应的策略解析文件和用户信息解析文件,若不存在,则根据所述当前分流策略标识采用加载字符串的方式将所述Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中;所述Nginx服务器还用于根据所述策略解析文件解析出的分流策略进行发布。2.根据权利要求1所述的系统,其特征在于,所述Nginx服务器还用于根据所述当前分流策略标识查找与该当前分流策略标识对应的策略解析文件ID和用户信息解析文件ID,根据所述策略解析文件ID和用户信息解析文件ID通过加载字符串的方式将Redis服务器中的以字符串形式存在的策略解析文件和用户信息解析文件通过lua加载到内存中并转换为Table的形式进行存储。3.根据权利要求1所述的系统,其特征在于,所述Nginx服务器还用于采用所述策略解析文件对相应的分流策略进行解析,解析出分流策略中至少一种参数信息与转发路径之间的对应关系,并将所述至少一种参数信息与转发路径之间的对应关系保存到Cache。4.根据权利要求3所述的系统,其特征在于,所述Nginx服务器还用于接收客户端发送的请求,提取所述请求中的用户信息,根据所述用户信息解析文件中预设的提取方式从所述用户信息中提取出至少一个参数信息,将提取出的至少一种参数信息作为用户特征,根据Cache中存储的至少一种参数信息与转发路径之间的对应关系确定出与所述用户特征对应的转发路径,根据所述转发路径进行对应的转发。5.根据权利要求1所述的系统,其特征在于,所述Nginx服务器还用于采用所述策略解析文件对相应的分流策略进行解析,解析出对应的百分比策略,根据所述百分比策略进行对应的发布。6.一种灰度发布方法,所述方法包括:Nginx服务器根据预设的规则定时查找Cache里面是否存在分流策略标识,若不存在,则从所述...

【专利技术属性】
技术研发人员:俞晓鸣顾钰芬李金龙
申请(专利权)人:上海亿账通互联网科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1