一种基于http请求转发的灰度发布方法及系统的制作方法

文档序号:10612601阅读:366来源:国知局
一种基于http请求转发的灰度发布方法及系统的制作方法
【专利摘要】本发明公开了一种基于HTTP请求转发的灰度发布方法及系统,所述的方法包括:S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径;S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。通过本发明,灰度发布可以保证整个过程的稳定性,在本发明的灰度发布过程中,可以先让一定条件的用户体验灰度发布的应用程序,在应用程序初始灰度发布的时候就可以发现和调整问题,避免应用程序真正上线时出现问题,带来较大的影响度。
【专利说明】
一种基于HTTP请求转发的灰度发布方法及系统
技术领域
[0001 ]本发明涉及灰度发布技术领域,具体涉及一种基于HTTP请求转发的灰度发布方法及系统。
【背景技术】
[0002]灰度发布是指在软件版本发布过程中,能够平滑过渡的一种发布方式。假设当前软件版本是A,新的软件版本是B,当用户通过客户端向服务器发送针对该软件的请求消息时,服务器控制一部分用户继续使用版本A,另一部分用户开始使用版本B;如果用户在使用版本B的过程中没有出现异常,则逐步将所有用户都迀移到版本B。
[0003]服务器如何选择部分用户对新版本软件的使用,关系到后期的软件发布运行的效果,选择不当,可能会导致软件发布过程中的不良影响。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种基于HTTP请求转发的灰度发布方法及系统,在初始灰度发布的时候就可以发现和调整问题,提高用户的体验度。
[0005]本发明解决上述技术问题的技术方案如下:
[0006]一方面,本发明提供了一种基于HTTP请求转发的灰度发布方法,包括:
[0007]S1、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息;
[0008]S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径;
[0009]S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。
[0010]另一方面,本发明提供了一种基于HTTP请求转发的灰度发布系统,所述系统包括Nginx服务器、多个内存缓存和至少一个灰度发布server ;
[0011 ]每一个所述内存缓存,用于存储每一条HTTP请求中的参数信息;
[0012]所述Nginx服务器,用于接收多条HTTP请求,获取每一条HTTP请求中的参数信息,并根据参数信息,从内存缓存中查找每一条参数信息对应的转发路径,将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server。
[0013]本发明提供的一种基于HTTP请求转发的灰度发布方法及系统,灰度发布可以保证整个过程的稳定性,在本发明的灰度发布过程中,可以先让一定条件的用户体验灰度发布的应用程序,在应用程序初始灰度发布的时候就可以发现和调整问题,避免应用程序真正上线时出现问题,带来较大的影响度。
【附图说明】
[0014]图1为本发明实施例1的一种基于HTTP请求转发的灰度发布方法流程图;
[0015]图2为本发明实施例2的一种基于HTTP请求转发的灰度发布系统连接示意图。
【具体实施方式】
[0016]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0017]实施例1、一种基于HTTP请求转发的灰度发布方法。
[0018]参见图1,本实施例提供的灰度发布方法包括:Sl、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息。
[0019]具体的,当同时有多条HTTP(HyperText Transfer Protocol,超文本传输协议)请求到来时,Nginx服务器接收该多条HTTP请求,其中,每一条HTTP请求中均携带有特定的参数信息,比如,携带有该条HTTP请求的IP( Internet Protocol Address,网际协议地址)信息、该条HTTP请求的vers1n信息以及该条HTTP请求的http cookie信息。当Nginx服务器接收每一条HTTP请求时,提取出每一条HTTP请求中的参数信息。
[0020]S2、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径。
[0021 ]具体的,本实施例中配置有多个内存缓存,每一个内存缓存中均存储有每一条HTTP请求的参数信息。另外,后台服务器会预先配置每一条HTTP请求的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置I,否则,将该条HTTP请求中的参数信息的标志位置O。
[0022]其中,将内存缓存的数量设置为多个,且每一个内存缓存中均存储有所有HTTP请求的参数信息,目的是当其中某些内存缓存出现异常时,另外的一些内存缓存还可以正常运行,不会导致整个内存缓存系统无法工作。
[0023]当Ngnix服务器接收到一条HTTP请求时,提取出其中的参数信息,并根据提取的参数信息,从内存缓存中查找该参数信息对应的转发路径。Nginx服务器在缓存中存储有可用内存缓存的列表,即只有使用状态为可用的内存缓存才处于列表中。当Nginx服务器从HTTP请求中提取出参数信息后,在使用状态为可用状态的内存缓存中查找该条参数信息对应的转发路径。Nginx服务器根据每一条HTTP请求中的参数信息,随机从可用的内存缓存中查找该HTTP请求中的参数信息的标志位,若标志位为I,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server。
[0024]S3、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。
[0025]具体的,若HTTP请求中的参数信息对应的转发路径为灰度server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server,否则,直接将该条HTTP请求放行,即不做处理。
[0026]其中,当灰度发布server为多台时,所述步骤S3具体为:
[0027]若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行轮询转发给对应的灰度发布server,比如,现有灰度发布serverl、灰度发布server2和灰度发布server3,现在陆续有3条HTTP到来,且该3条HTTP请求的参数信息的转发路径均对应灰度发布server,则Nginx服务器按这3条HTTP请求到来的时间轮询转发给对应的灰度发布server,则将最先到来的HTTP请求转发给灰度发布serverl,将次之到来的HTTP请求转发给灰度发布server〗,将最后到来的HTTP请求转发给灰度发布server3。或者,对多条HTTP请求中的参数信息做Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布server,比如,如上,对3条到来的HTTP请求中的参数信息做Hash运算,分别得到对应的Hash值,每一个Hash值对应一个灰度发布server的地址,则按照参数信息的Hash值将HTTP请求转发给对应的灰度发布server。本实施例中布置多台灰度发布server,是为了减轻每台灰度发布server的负担,均衡每台灰度发布server的压力。
[0028]为了加深对实施例1的理解,下面以几个具体的例子来说明实施例1提供的灰度发布方法。
[0029]例1、HTTP请求中的参数信息为IP信息,当Ngnix服务器接收到多个HTTP请求时,提取出每一条HTTP请求中的IP信息,并从多条IP信息中提取出客户端IP,并从可用的内存缓存中查找每一个客户端IP对应的转发路径,当客户端IP在内存缓存中的标志位为I时,则将该条客户端IP对应的HTTP请求转发给灰度发布server。
[0030]例2、HTTP请求中的参数信息为vers1n信息,当Nginx服务器接收到多条HTTP请求时,提取出每一条HTTP请求中的vers1n信息,并从可用的内存缓存中查找每一条vers1n信息对应的转发路径,若有多条vers1n信息对应的转发路径均为灰度发布server,则按照每一条vers1n信息对应的HTTP请求达到的时间顺序将对应的HTTP请求轮询转发给对应的灰度发布server,或者,对每一条vers 1n信息进行Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布server。
[0031 ] 例3、HTTP请求的参数信息为http cookie标示,其中,http cookie标示为用户的特征标识,可以为用户的手机号码或者年龄特征等。当Nginx服务器接收到多条HTTP请求时,提取出每一条HTTP请求中的cookie信息,并从可用的内存缓存中查找每一条cookie信息对应的转发路径,若cookie信息对应的转发路径为灰度发布server,则将该条cookie信息对应的HTTP请求转发给对应灰度发布server。
[0032]实施例2、一种基于HTTP请求转发的灰度发布系统。
[0033]参见图2,本实施例提供的灰度发布系统包括Nignix服务器、多个内存缓存、后台服务器和至少一个灰度发布server。
[0034]其中,每一个所述内存缓存,用于存储每一条HTTP请求中的参数信息;
[0035]所述Nginx服务器,用于接收至少一条HTTP请求,获取每一条HTTP请求中的参数信息,并根据参数信息,从内存缓存中查找每一条参数信息对应的转发路径,将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server。
[0036]具体的,后台服务器,用于预先配置每一条HTTP请求中的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置I,否则,将该条HTTP请求中的参数信息的标志位置O。
[0037]所述Nginx服务器,用于根据参数信息从内存缓存中查找每一条参数信息对应的转发路径具体为:
[0038]根据每一条HTTP请求中的参数信息,随机从可用的内存缓存中查找该HTTP请求中的参数信息的标志位,若标志位为I,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server,其中,Nginx服务器的缓存中存储有可用内存缓存的列表。
[0039]其中的灰度发布server为多台,所述Nginx服务器,用于将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server具体为:
[0040]若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行轮询转发给对应的灰度发布server;或者,对多条HTTP请求中的参数信息做Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布Server0
[0041]本发明提供的一种基于HTTP请求转发的灰度发布方法及系统,灰度发布可以保证整个过程的稳定性,在本发明的灰度发布过程中,可以先让一定条件的用户体验灰度发布的应用程序,在应用程序初始灰度发布的时候就可以发现和调整问题,避免应用程序真正上线时出现问题,带来较大的影响度;在实施过程中,设置多个内存缓存来存储每一条参数信息,保证了整个内存缓存结构的稳定性,避免一个内存缓存异常影响正常工作;另外,布置多台灰度发布server,减轻了每台灰度发布server的负载,均衡了每台灰度发布server的压力。
[0042]在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0043]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于HTTP请求转发的灰度发布方法,其特征在于,包括以下步骤: 51、Nginx服务器接收至少一条HTTP请求,提取每一条HTTP请求中的参数信息; 52、根据每一条HTTP请求中的参数信息,从内存缓存中查找每一条HTTP请求中的参数信息对应的转发路径; 53、若HTTP请求中的参数信息对应的转发路径为灰度发布server,则Nginx服务器将该条HTTP请求转发给对应的灰度发布server;否则,直接将该条HTTP请求放行。2.如权利要求1所述的基于HTTP请求转发的灰度发布方法,其特征在于,内存缓存的数量有多个,每一个内存缓存中均存储有每一条HTTP请求中的参数信息。3.如权利要求2所述的基于HTTP请求转发的灰度发布方法,其特征在于,后台服务器预先配置每一条HTTP请求中的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置I,否则,将该条HTTP请求中的参数信息的标志位置O。4.如权利要求3所述的基于HTTP请求转发的灰度发布方法,其特征在于,所述的HTTP请求中的参数信息为HTTP请求中的IP信息、HTTP请求中的vers1n信息或者HTTP请求中的cookie标志信息。5.如权利要求4所述的基于HTTP请求转发的灰度发布方法,其特征在于,所述步骤S2具体为: 根据每一条HTTP请求中的参数信息,Nginx服务器随机从可用的内存缓存中查找该HTTP请求中的参数信息的标志位,若标志位为I,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server,其中,Nginx服务器的缓存中存储有可用内存缓存的列表。6.如权利要求5所述的基于HTTP请求转发的灰度发布方法,其特征在于,当灰度发布server为多台时,所述步骤S3具体为: 若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行将多条HTTP请求轮询转发给对应的灰度发布server;或者,对多条HTTP请求中的参数信息做Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布server。7.—种基于HTTP请求转发的灰度发布系统,其特征在于,所述系统包括Nginx服务器、多个内存缓存和至少一个灰度发布server; 每一个所述内存缓存,用于存储每一条HTTP请求中的参数信息; 所述Nginx服务器,用于接收多条HTTP请求,获取每一条HTTP请求中的参数信息,并根据参数信息,从内存缓存中查找每一条参数信息对应的转发路径,将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server。8.如权利要求7所述的基于HTTP请求转发的灰度发布系统,其特征在于,所述系统还包括: 后台服务器,用于预先配置每一条HTTP请求中的参数信息与灰度发布server之间的对应关系,若HTTP请求中的参数信息与灰度发布server之间具有对应关系,则将每一个内存缓存中该条HTTP请求中的参数信息的标志位置I,否则,将该条HTTP请求中的参数信息的标志位置O。9.如权利要求8所述的基于HTTP请求转发的灰度发布系统,其特征在于,所述Nginx月艮务器,用于根据参数信息从内存缓存中查找每一条参数信息对应的转发路径具体为: 根据每一条HTTP请求中的参数信息,随机从可用的内存缓存中查找该HTTP请求中的参数信息的标志位,若标志位为I,则确定该条HTTP请求的转发路径为灰度发布server;否则,转发路径为生产server,其中,Nginx服务器的缓存中存储有可用内存缓存的列表。10.如权利要求9所述的基于HTTP请求转发的灰度发布系统,其特征在于,当灰度发布server为多台时,所述Nginx服务器,用于将转发路径为灰度发布server的参数信息对应的HTTP请求转发给对应的灰度发布server具体为:若多条HTTP请求中的参数信息对应的转发路径均为灰度发布server,则按照HTTP请求到来的时间顺序进行将多条HTTP请求轮询转发给对应的灰度发布server;或者,对多条HTTP请求中的参数信息做Hash运算,得到对应的Hash值,按照Hash值将HTTP请求转发给对应的灰度发布server。
【文档编号】H04L29/08GK105975270SQ201610290167
【公开日】2016年9月28日
【申请日】2016年5月4日
【发明人】王陶林
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1