一种基于HTTP请求转发的灰度发布方法及系统技术方案

技术编号:13781490 阅读:101 留言:0更新日期:2016-10-04 18:20
本发明专利技术公开了一种基于HTTP请求转发的灰度发布方法及系统,所述的方法包括:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径;S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。通过本发明专利技术,灰度发布可以保证整个过程的稳定性,在本发明专利技术的灰度发布过程中,可以先让一定条件的用户体验灰度发布的应用程序,在应用程序初始灰度发布的时候就可以发现和调整问题,避免应用程序真正上线时出现问题,带来较大的影响度。

【技术实现步骤摘要】

本专利技术涉及灰度发布
,具体涉及一种基于HTTP请求转发的灰度发布方法及系统
技术介绍
灰度发布是指在软件版本发布过程中,能够平滑过渡的一种发布方式。假设当前软件版本是A,新的软件版本是B,当用户通过客户端向服务器发送针对该软件的请求消息时,服务器控制一部分用户继续使用版本A,另一部分用户开始使用版本B;如果用户在使用版本B的过程中没有出现异常,则逐步将所有用户都迁移到版本B。服务器如何选择部分用户对新版本软件的使用,关系到后期的软件发布运行的效果,选择不当,可能会导致软件发布过程中的不良影响。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于HTTP请求转发的灰度发布方法及系统,在初始灰度发布的时候就可以发现和调整问题,提高用户的体验度。本专利技术解决上述技术问题的技术方案如下:一方面,本专利技术提供了一种基于HTTP请求转发的灰度发布方法,包括:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条
HTTP请求中的参数信息对应的转发路径;S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。另一方面,本专利技术提供了一种基于HTTP请求转发的灰度发布系统,所述系统包括Nginx服务器、多个内存缓存和至少一个灰度发布server;每一个所述内存缓存,用于存储每一条HTTP请求中的参数信息;所述Nginx服务器,用于接收多条HTTP请求,获取每一条HTTP请求中的参数信息,并根据参数信息,从内存缓存中查找每一条参数信息对应的转发路径,将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server。本专利技术提供的一种基于HTTP请求转发的灰度发布方法及系统,灰度发布可以保证整个过程的稳定性,在本专利技术的灰度发布过程中,可以先让一定条件的用户体验灰度发布的应用程序,在应用程序初始灰度发布的时候就可以发现和调整问题,避免应用程序真正上线时出现问题,带来较大的影响度。附图说明图1为本专利技术实施例1的一种基于HTTP请求转发的灰度发布方法流程图;图2为本专利技术实施例2的一种基于HTTP请求转发的灰度发布系统连接示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。实施例1、一种基于HTTP请求转发的灰度发布方法。参见图1,本实施例提供的灰度发布方法包括:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息。具体的,当同时有多条HTTP(HyperText Transfer Protocol,超文本传输协议)请求到来时,Nginx服务器接收该多条HTTP请求,其中,每一条HTTP请求中均携带有特定的参数信息,比如,携带有该条HTTP请求的IP(Internet Protocol Address,网际协议地址)信息、该条HTTP请求的version信息以及该条HTTP请求的http cookie信息。当Nginx服务器接收每一条HTTP请求时,提取出每一条HTTP请求中的参数信息。S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径。具体的,本实施例中配置有多个内存缓存,每一个内存缓存中均存储有每一条HTTP请求的参数信息。另外,后台服务器会预先配置每一条HTTP请求的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置1,否则,将该条HTTP请求中的参数信息的标志位置0。其中,将内存缓存的数量设置为多个,且每一个内存缓存中均存储有所有HTTP请求的参数信息,目的是当其中某些内存缓存出现异常时,另外的一些内存缓存还可以正常运行,不会导致整个内存缓存系统无法工作。当Ngnix服务器接收到一条HTTP请求时,提取出其中的参数信息,并根据提取的参数信息,从内存缓存中查找该参数信息对应的转发路径。Nginx服务器在缓存中存储有可用内存缓存的列表,即只有使用状态为可用的内存缓存才处于列表中。当Nginx服务器从HTTP请求中提取出参数信息后,在使用状态为可用状态的内存缓存中查找该条参数信息对应的转发路径。
Nginx服务器根据每一条HTTP请求中的参数信息,随机从可用的内存缓存中查找该HTTP请求中的参数信息的标志位,若标志位为1,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server。S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。具体的,若HTTP请求中的参数信息对应的转发路径为灰度server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server,否则,直接将该条HTTP请求放行,即不做处理。其中,当灰度发布server为多台时,所述步骤S3具体为:若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行轮询转发给对应的灰度发布server,比如,现有灰度发布server1、灰度发布server2和灰度发布server3,现在陆续有3条HTTP到来,且该3条HTTP请求的参数信息的转发路径均对应灰度发布server,则Nginx服务器按这3条HTTP请求到来的时间轮询转发给对应的灰度发布server,则将最先到来的HTTP请求转发给灰度发布server1,将次之到来的HTTP请求转发给灰度发布server2,将最后到来的HTTP请求转发给灰度发布server3。或者,对多条HTTP请求中的参数信息做Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布server,比如,如上,对3条到来的HTTP请求中的参数信息做Hash运算,分别得到对应的Hash值,每一个Hash值对应一个灰度发布server的地址,则按照参数信息的Hash值将HTTP请求转发给对应的灰度发布server。本实施例中布置多台灰度发布server,是为了减轻每台灰度发布server的负担,均衡每台灰度发布server的压力。为了加深对实施例1的理解,下面以几个具体的例子来说明实施例1提
供的灰度发布方法。例1、HTTP请求中的参数信息为IP信息,当Ngnix服务器接收到多个HTTP请求时,提取出每一条HTTP请求中的IP信息,并从多条IP信息中提取出客户端IP,并从可用的内存缓存中查找每一个客户端IP对应的转发路径,当客户端IP在内存缓存中的标志位为1时,则将该条客户端IP对应的HTTP请求转发给灰度发布server。例2、HTTP请求中的参数信息为version信息,当Nginx服务器接收到多条HTTP请求时,提取出每一条HTTP请求中的version信息,并从可用的内存本文档来自技高网
...

【技术保护点】
一种基于HTTP请求转发的灰度发布方法,其特征在于,包括以下步骤:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径;S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。

【技术特征摘要】
1.一种基于HTTP请求转发的灰度发布方法,其特征在于,包括以下步骤:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径;S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。2.如权利要求1所述的基于HTTP请求转发的灰度发布方法,其特征在于,内存缓存的数量有多个,每一个内存缓存中均存储有每一条HTTP请求中的参数信息。3.如权利要求2所述的基于HTTP请求转发的灰度发布方法,其特征在于,后台服务器预先配置每一条HTTP请求中的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置1,否则,将该条HTTP请求中的参数信息的标志位置0。4.如权利要求3所述的基于HTTP请求转发的灰度发布方法,其特征在于,所述的HTTP请求中的参数信息为HTTP请求中的IP信息、HTTP请求中的version信息或者HTTP请求中的cookie标志信息。5.如权利要求4所述的基于HTTP请求转发的灰度发布方法,其特征在于,所述步骤S2具体为:根据每一条HTTP请求中的参数信息,Nginx服务器随机从可用的内存
\t缓存中查找该HTTP请求中的参数信息的标志位,若标志位为1,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server,其中,Nginx服务器的缓存中存储有可用内存缓存的列表。6.如权利要求5所述的基于HTTP请求转发的灰度发布方法,其特征在于,当灰度发布server为多台时,所述步骤S3具体为:若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行将多条HTTP请求轮询转发给对应的灰度发布server;或者,对多条HTTP请求中的参数信息做Has...

【专利技术属性】
技术研发人员:王陶林
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

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

1