一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

前后端分离的灰度发布方法、前端服务器和配置服务器与流程

2022-03-01 21:35:05 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种前后端分离的灰度发布方法、前端服务器和配置服务器。


背景技术:

2.灰度发布是指在软件发布过程中,能够平滑过渡的一种发布方式。例如,假设当前软件的版本有新旧两个版本,当用户向服务器发送该软件的请求消息时,服务器控制一部分用户继续使用旧版本,另一部分用户使用新版本。如果用户在使用新版本的过程中没有什么异常,那么逐渐扩大新版本的发布范围,最终把所有用户迁移到新版本。
3.对于前后端分离的业务系统或者操作平台,往往具有使用人员多,涉及功能广,系统可用性依赖强等特点。为了在新版本上线出问题时,能够控制其影响范围,提升用户体验,引入灰度发布是十分必要的。现有技术中通常通过架设定制化网关或者封装rpc(remote procedure call protocol,远程过程调用协议)的框架实现灰度发布。
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.图1是前后端分离的业务系统或者操作平台的系统架构示意图;
40.图2是根据本发明实施例的前后端分离的灰度发布方法的主要步骤的示意图;
41.图3是实现本发明实施例的前后端分离的灰度发布方法的系统架构示意图;
42.图4是根据本发明实施例的前后端分离的灰度发布方法中前端单独灰度发布的时序图;
43.图5是根据本发明实施例的前后端分离的灰度发布方法中后端单独灰度发布的时序图;
44.图6是根据本发明实施例的前后端分离的灰度发布方法中前后端同时灰度发布的时序图;
45.图7是根据本发明实施例的用于灰度发布的前端服务器的主要模块的示意图;
46.图8是根据本发明实施例的用于灰度发布的配置服务器的主要模块的示意图;
47.图9是本发明实施例可以应用于其中的示例性系统架构图;
48.图10是适用于来实现本发明实施例的电子设备的计算机装置的结构示意图。
具体实施方式
49.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
50.下面对本发明实施例涉及的技术术语进行解释。
51.html:hyper text markup language,超文本标记语言。
52.js:是javascript的缩写,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。
53.css:是cascading style sheets的缩写,是一种用来表现html或xml(extensible markup language,可扩展标记语言)等文件样式的计算机语言。
54.nginx:是一个高性能的http(hypertext transfer protocol,超文本传输协议)和反向代理web服务器。
55.切量:在对原服务进行变更之后,需要按照一定的切量策略将访问原服务的用户流量逐步切换至变更后的服务上,这一切换过程称为切量。
56.ajax:是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。
57.图1是前后端分离的业务系统或者操作平台的系统架构示意图。如图1所示,前后端分离的业务系统或者操作平台一般包括:前端服务器、网关、后台服务器和配置服务器。
58.其中,前端服务器提供页面展示和前端逻辑处理。用户在第一次访问系统页面时,通常会获取到前端所有的静态资源,比如html页面、js脚本语言、css级联样式文件以及图片等。之后通过操作页面与后台系统(包括n个后台服务器,n为正整数)进行交互,完成信息的获取和数据的录入。
59.前端服务器通常需要获得不同后台服务器提供的服务,此时需借助网关,比如nginx,将来自前端服务器的访问请求映射到对应的后台服务器。具体地,网关中存储有后台服务器的域名,例如进行人员管理的后台服务器,域名为1.com,进行任务分派的后台服务器,域名为2.com。网关可以根据访问请求中包含的访问链接,将访问请求转移到对应域名的后台服务器上。
60.后台服务器提供具体的后台服务,例如数据表单查询、数据存储等。配置服务器提供信息配置功能,比如用户权限配置、接口参数配置等。本发明实施例针对上述系统架构,通过改进前端服务器和配置服务器,实现灰度发布。
61.实施例一
62.图2是根据本发明实施例的前后端分离的灰度发布方法的主要步骤的示意图。如图2所示,本发明实施例的前后端分离的灰度发布方法,由前端服务器实现,主要包括如下步骤:
63.步骤s201:发送页面访问请求。当前端服务器访问页面时,可以通过网关向配置服务器发送页面访问请求。实施例中,该页面访问请求可以包括请求网址和发起访问的用户的信息,比如用户名等。
64.步骤s202:接收响应于所述页面访问请求的灰度路由信息。配置服务器中设置有灰度路由策略,该灰度路由策略用于在用户访问网站时,确定当前用户应该访问灰度版本的页面(下文称为灰度页面),还是正式版本的页面(下文称为正式页面),以及应该访问灰度版本的后台服务(下文称为灰度服务),还是正式版本的后台服务(下文称为正式服务)。
65.实施例中,灰度路由策略包括灰度白名单和灰度比例中的至少一个。其中,灰度白名单中可以设置允许访问灰度页面(或者灰度服务)的用户名、订单号、用户所属业务组等。灰度比例可以自定义设置,初始取值一般较小,比如10%、20%,且可以根据用户对灰度页面(或者灰度服务)的反馈进行调整。
66.配置服务器接收到页面访问请求后,根据灰度路由策略和页面访问请求确定出灰度路由信息,之后将灰度路由信息发送至前端服务器。其中,灰度路由信息可用于指示所访问页面的版本信息,该版本信息包括灰度版本和正式版本。
67.在一可选的实施例中,可以使用目标网址指示所访问页面的版本信息。此时,确定灰度路由信息的实现过程为:判断页面访问请求是否满足灰度路由策略,如果页面访问请求满足灰度路由策略,则生成包括第一网址的灰度路由信息,该第一网址为灰度版本对应的目标网址;如果页面访问请求不满足灰度路由策略,则生成包括第二网址的灰度路由信息,该第二网址为正式版本对应的目标网址。
68.在另一可选的实施例中,还可以使用版本标识指示所访问页面的版本信息。该版本标识用于代表灰度版本和正式版本,比如用不同的数字、字母或者两者组合等来分别代表灰度版本和正式版本。实施例中,可以用数字0代表灰度版本,数字1代表正式版本。
69.此时,确定灰度路由信息的实现过程为:判断页面访问请求是否满足灰度路由策略,如果页面访问请求满足灰度路由策略,则生成包括第一标识的灰度路由信息,该第一标识为灰度版本对应的版本标识;如果页面访问请求不满足灰度路由策略,则生成包括第二标识的灰度路由信息,该第二标识为正式版本对应的版本标识。
70.步骤s203:根据所述灰度路由信息所指示的版本信息,将所述页面访问请求重定向到灰度版本对应的页面,或者返回正式版本对应的页面数据。前端服务器接收到灰度路由信息后,判断灰度路由信息所指示的版本信息为灰度版本还是正式版本,如果灰度路由信息所指示的版本信息为灰度版本,则将页面访问请求重定向到相应的灰度页面;如果灰度路由信息所指示的版本信息为正式版本,则将正式页面的页面数据返回至客户端。
71.在一可选的实施例中,判断灰度路由信息所指示的版本信息为灰度版本还是正式版本时,可以通过比对目标网址和请求网址实现。具体地,判断目标网址与请求网址是否相同,如果目标网址与请求网址不相同,则确定灰度路由信息所指示的版本信息为灰度版本;如果目标网址与请求网址相同,则确定灰度路由信息所指示的版本信息为正式版本。
72.在另一可选的实施例中,还可以根据灰度路由信息的版本标识,判断灰度路由信息所指示的版本信息为灰度版本还是正式版本。需要注意的是,此种情况,前端服务器中需存储灰度版本对应的目标网址,如果判断结果为灰度版本,则根据灰度版本对应的目标网址,将页面访问请求重定向到灰度版本对应的页面。
73.上述实施例,基于灰度路由信息中指示的版本信息,确定是否需要将页面访问请求重定向至灰度版本对应页面,在前端实现了单独的灰度发布,代码侵入小,系统改造量小,为整个业务系统或者操作平台的新功能上线提供了保障,提升了系统稳定性和用户体验。
74.图3是实现本发明实施例的前后端分离的灰度发布方法的系统架构示意图。如图3所示,本发明实施例的前后端分离的灰度发布系统包括:前端服务器、网关、后台服务器和配置服务器。其中,前端服务器包括灰度选择模块,配置服务器包括灰度控制模块。即本发明通过在图1所示的系统架构中增加灰度选择模块和灰度控制模块,实现前后端分离的业务系统/操作平台的灰度发布。
75.为了实现灰度发布,相应的,在后台服务器中需部署灰度环境的服务器,并挂载在与线上正式环境不同的域名上,提供给前台服务器选择。实施例中并不限定后台服务器的数量,可以动态增加或者减少后台服务器,并通知配置服务器的配置为后台服务器提供灰度功能。
76.在一可选的实施例中,为了在上线新的配置服务功能时,可以进行灰度测试,也可以为配置服务器部署灰度环境的服务器。其中,灰度环境是指运行新版本系统所需的软件环境。
77.下面对灰度选择模块和灰度控制模块所实现的功能进行说明。
78.灰度控制模块,用于获取当前配置的灰度路由策略,以及发送灰度路由信息。该灰度路由策略例如可用于确定当前用户是否能够使用灰度功能,也可用于确定当前用户在使用某个具体的后台服务时,是否能够使用灰度功能。灰度路由信息用于指示用户应该访问前端页面的灰度版本还是正式版本,还可用于指示访问后台服务时,应该访问灰度服务还是正式服务。
79.灰度选择模块,用于根据灰度路由信息所指示的应该访问的页面版本信息,在当前访问的页面版本与应该访问的页面版本不一致时,进行重定向。比如,指示应该访问灰度页面,却登录到了正式页面,则进行重定向。另外,该模块还可以根据灰度路由策略,选择调用正式服务还是灰度服务。
80.灰度选择模块和灰度控制模块之间的信息交互,可以通过前端服务器定时轮询获取,也可以通过长连接(比如websocket长连接)的方式由配置服务器推送。
81.基于上述灰度发布系统的系统架构,本发明实施例提供三种灰度发布方式,分别为前端单独灰度发布、后端单独灰度发布和前后端同时灰度发布,以实现灵活的灰度发布。下面结合附图对三种灰度发布方式的实现过程进行说明。
82.实施例二
83.图4是根据本发明实施例的前后端分离的灰度发布方法中前端单独灰度发布的时序图。如图4所示,本发明实施例的前端单独灰度发布的方法,主要包括如下步骤:
84.步骤一、前端服务器通过网关向配置服务器发送页面访问请求。前端服务器访问页面时,通过灰度选择模块向网关发送页面访问请求,网关将页面访问请求转发至配置服务器的灰度控制模块。该页面访问请求包括所请求访问页面的网址(即请求网址)以及发起访问的用户标识,比如用户名。
85.在一优选的实施例中,前端服务器首次访问页面时,通过网关向配置服务器发送
页面访问请求。后续再访问同一页面时,直接跳转至对应版本的页面(即首次访问时确定的页面)即可。此处的首次访问,是指用户通过手动输入网址、从收藏夹进入、点击链接等方式,第一次进入系统首页或者其他功能页面。
86.步骤二、配置服务器根据配置的灰度路由策略和页面访问请求,确定灰度路由信息,通过网关将灰度路由信息返回至前端服务器。配置服务器的灰度控制模块判断页面访问请求是否满足灰度路由策略,进而基于该判断结果确定灰度路由信息。灰度路由策略包括灰度白名单和/或灰度比例。
87.其中,判断页面访问请求是否满足灰度路由策略的实现过程可以为:解析页面访问请求得到用户名,获取设定入参;确定灰度白名单存在该入参,或者对该入参进行哈希取模后映射的比例小于灰度比例,则页面访问请求满足灰度路由策略;如果灰度白名单不存在该入参,且对该入参进行哈希取模后映射的比例大于等于灰度比例,则页面访问请求不满足灰度路由策略。
88.实施例中,入参可以根据业务需求设定,比如为用户名、订单号、用户所属业务组等。需要注意的是,如果入参是用户名,则可以直接从页面访问请求中获得;如果入参是订单号、用户所属业务组等并非用户名的参数,则需要根据用户名进一步获取对应入参。
89.对入参进行哈希取模,即对入参进行哈希运算后再取模,以限定范围。比如设定取值范围为0-1024,入参经哈希运算取模后的值为540,则540/1024*100%即为映射后的百分比计算结果。将该结果与灰度比例,比如20%进行大小比较,即可确定页面访问请求是否满足灰度路由策略。
90.另外,根据业务系统的功能不同,灰度白名单不同。比如,业务系统为用户系统,则灰度白名单为用户白名单;业务系统为订单系统,则灰度白名单为订单号白名单。因此,上述判断页面访问请求是否满足灰度路由策略的过程需结合灰度白名单的具体内容实现,下面举例说明。
91.假设灰度白名单维护的是用户白名单,则在灰度白名单中查找解析出的用户名,如果灰度白名单中存在该用户名,则说明页面访问请求满足灰度路由策略,该用户应该访问灰度页面;如果灰度白名单中不存在该用户名,则说明页面访问请求不满足灰度路由策略,该用户应该访问正式页面。
92.假设灰度白名单维护的是订单号白名单,则在数据库中查询用户名对应的订单号,之后在灰度白名单中查找订单号,如果灰度白名单中存在该订单号,则说明页面访问请求满足灰度路由策略,该用户应该访问灰度页面;如果灰度白名单中不存在该订单号,则说明页面访问请求不满足灰度路由策略,该用户应该访问正式页面。
93.经过上述处理,配置服务器的灰度控制模块如果确定用户应该访问灰度页面,则生成携带灰度页面的网址(即目标网址)的灰度路由信息;如果确定用户应该访问正式页面,则生成携带正式页面的网址(即请求网址)的灰度路由信息。之后灰度控制模块将灰度路由信息通过网关发送至灰度选择模块。
94.步骤三、前端服务器比对灰度路由信息中的目标网址与页面访问请求的请求网址是否相同,如果目标网址与请求网址不相同,则执行步骤四;如果目标网址与请求网址相同,则执行步骤五。
95.步骤四、前端服务器将页面访问请求进行重定向,结束本流程。此处的重定向即根
据目标网址,将页面访问请求转到灰度页面。实施例中,可以通过页面刷新指令实现重定向,比如在js脚本中执行window.location.href="新的页面"实现重定向。
96.步骤五、前端服务器返回正式版本对应的页面数据。如果目标网址与请求网址相同,则将正式版本对应的页面数据返回至客户端。客户端在接收到页面数据后,进行页面渲染,将正式页面呈现给用户。
97.上述灰度白名单和灰度比例相结合的方式,允许系统开发者先开放灰度白名单,再逐步开启和调高灰度比例,实现新功能的平滑上线。
98.在一可选的实施例中,实施例二中步骤二所确定的灰度路由信息除用于指示所访问页面的版本信息之外,还可以用于指示前后端是否同时切量。其中,前后端是否同时切量可以由配置服务器根据需求设置。
99.实施例中,配置服务器可以在灰度路由信息中携带切量标识,以指示前后端是否同时切量。即此时的灰度路由信息包括版本信息对应的目标网址和切量标识。其中,切量标识可以是数字、字母或者两者组合等。比如,用y表示前后端同时切量,用n表示前后端不同时切量。
100.相应的,步骤三中配置服务器通过网关将上述包含切量标识的灰度路由信息返回至前端服务器。前端服务器接收到灰度路由信息后,在其需要访问后台服务时,还需根据切量标识,继续执行后端单独灰度发布,或者前后端同时灰度发布的方案。具体地,如果切量标识指示前后端不同时切量,则继续执行实施例三的步骤一至步骤六;如果切量标识指示前后端同时切量,则继续执行实施例四的步骤六至步骤八。下面结合图5和图6对两种情况分别进行说明。
101.实施例三
102.图5是根据本发明实施例的前后端分离的灰度发布方法中后端单独灰度发布的时序图。如图5所示,本发明实施例的后端单独灰度发布的方法,主要包括如下步骤:
103.步骤一、前端服务器通过网关从配置服务器获取灰度路由策略。前端服务器的灰度选择模块可以使用轮询的方式,通过网关从配置服务器获取灰度路由策略。配置服务器也可以通过定时推送的方式,将灰度路由策略通过网关推送至灰度选择模块。
104.步骤二、前端服务器接收服务访问请求。用户在客户端打开页面后,假设需要进行数据查询、数据存储等业务,通过在页面操作触发生成服务访问请求,并发送至前端服务器。该服务访问请求,比如ajax请求,包括所请求访问服务的路径(即请求路径)以及发起访问的用户的信息,比如用户名。
105.步骤三、前端服务器判断服务访问请求是否满足灰度路由策略,如果服务访问请求满足灰度路由策略,则执行步骤四;如果服务访问请求不满足所述灰度路由策略,则执行步骤五。该步骤用于判断当前对后台服务器的访问应该访问灰度服务还是正式服务。
106.前端服务器的灰度选择模块接收到用户的服务访问请求后,需判断服务访问请求是否满足灰度路由策略,判断过程如下:解析服务访问请求得到用户名,获取设定入参;确定灰度白名单存在该入参,或者对该入参进行哈希取模后映射的比例小于灰度比例,则服务访问请求满足灰度路由策略;如果灰度白名单不存在该入参,且对该入参进行哈希取模后映射的比例大于等于灰度比例,则服务访问请求不满足灰度路由策略。
107.实施例中,入参仍旧可以根据业务需求设定,比如为用户名、订单号、用户所属业
务组等。需要注意的是,如果入参是用户名,则可以直接从服务访问请求中获得;如果入参是订单号、用户所属业务组等并非用户名的参数,则需要根据用户名进一步获取对应入参。
108.以灰度白名单维护用户白名单为例,如果用户白名单中存在解析得到的用户名,则说明该服务访问请求满足灰度路由策略,应该访问灰度服务;如果用户白名单中不存在解析得到的用户名,则说明该服务访问请求不满足灰度路由策略,应该访问正式服务。
109.步骤四、前端服务器调用灰度服务,执行步骤六。该步骤用于把服务访问请求映射到灰度环境的后台服务器。具体地,前端服务器的灰度选择模块将服务访问请求的请求路径修改为灰度服务的路径,得到新的服务访问请求;之后根据灰度服务的路径,通过网关发送新的服务访问请求至对应的后台服务器。
110.步骤五、前端服务器调用正式服务,执行步骤六。该步骤用于把服务访问请求映射到正式环境的后台服务器。即前端服务器的灰度选择模块根据服务访问请求的请求路径(该请求路径为正式服务的路径),通过网关发送该服务访问请求对应的后台服务器。
111.步骤六、后台服务器对服务访问请求进行处理,反馈处理结果至前端服务器。比如,针对数据查询业务发起的服务访问请求,此处反馈的处理结果即对应的数据查询结果。
112.实施例四
113.图6是根据本发明实施例的前后端分离的灰度发布方法中前后端同时灰度发布的时序图。如图6所示,本发明实施例的前后端同时灰度发布的方法,主要包括如下步骤:
114.步骤一、前端服务器通过网关向配置服务器发送页面访问请求。
115.步骤二、配置服务器根据配置的灰度路由策略和页面访问请求,确定灰度路由信息,通过网关将灰度路由信息返回至前端服务器。其中,灰度路由信息包括版本信息对应的目标网址和切量标识,该切量标识指示前后端同时切量。
116.步骤三、前端服务器比对灰度路由信息中的目标网址与页面访问请求的请求网址是否相同,如果目标网址与请求网址不相同,则执行步骤四;如果目标网址与请求网址相同,则执行步骤五。
117.步骤四、前端服务器将页面访问请求进行重定向,执行步骤六。
118.步骤五、前端服务器返回正式版本对应的页面数据,执行步骤六。
119.上述步骤一至步骤五的具体实现参见实施例二,此处不再赘述。下面对步骤六至步骤八进行详细说明。
120.步骤六、前端服务器接收与页面访问请求相应的服务访问请求。此处的相应是指发起该服务访问请求的用户与发起页面访问请求的用户相同,即该服务访问请求的用户名与页面访问请求的用户名相同。用户在客户端打开所请求的页面(即页面访问请求的请求网址对应的页面)后,假设需要进一步进行数据查询、数据存储等业务,通过在页面操作触发生成服务访问请求,并发送至前端服务器。
121.步骤七、前端服务器根据步骤三的比对结果,对应调用灰度服务或者正式服务。如果目标网址与请求网址不相同,则调用灰度服务,使得前端服务器把服务访问请求映射到灰度环境的后台服务器。具体地,前端服务器的灰度选择模块将服务访问请求的请求路径修改为灰度服务的路径,得到新的服务访问请求;之后根据灰度服务的路径,通过网关发送新的服务访问请求至对应的后台服务器。
122.如果目标网址与请求网址相同,则调用正式服务,使得前端服务器把服务访问请
求映射到正式环境的后台服务器。即前端服务器的灰度选择模块根据服务访问请求的请求路径,通过网关发送该服务访问请求对应的后台服务器。
123.步骤八、后台服务器对服务访问请求进行处理,反馈处理结果至前端服务器。比如,针对数据查询业务发起的服务访问请求,此处反馈的处理结果即对应的数据查询结果。
124.该实施例中灰度选择模块只需根据前端服务器所访问页面的版本信息,去访问后台服务。如果前端服务器访问的是灰度页面,则在访问后台服务时,需访问灰度服务。如果前端服务器访问的是正式页面,则在访问后台服务时,需访问正式服务。
125.图7是根据本发明实施例的用于灰度发布的前端服务器的主要模块的示意图。如图7所示,本发明实施例的用于灰度发布的前端服务器700,主要包括:
126.请求发送模块701,用于发送页面访问请求。当前端服务器访问页面时,可以通过网关向配置服务器发送页面访问请求。实施例中,该页面访问请求可以包括请求网址和发起访问的用户的信息,比如用户名等。
127.信息接收模块702,用于接收响应于所述页面访问请求的灰度路由信息。配置服务器中设置有灰度路由策略,该灰度路由策略用于在用户访问网站时,确定当前用户应该访问灰度页面,还是正式页面,以及应该访问灰度服务还是正式服务。实施例中,灰度路由策略包括灰度白名单和灰度比例中的至少一个。
128.配置服务器接收到页面访问请求后,根据灰度路由策略和页面访问请求确定出灰度路由信息,之后将灰度路由信息发送至前端服务器。其中,灰度路由信息可用于指示所访问页面的版本信息,该版本信息包括灰度版本和正式版本。
129.在一可选的实施例中,可以使用目标网址指示所访问页面的版本信息。此时,确定灰度路由信息的实现过程为:判断页面访问请求是否满足灰度路由策略,如果页面访问请求满足灰度路由策略,则生成包括第一网址的灰度路由信息,该第一网址为灰度版本对应的目标网址;如果页面访问请求不满足灰度路由策略,则生成包括第二网址的灰度路由信息,该第二网址为正式版本对应的目标网址。
130.请求处理模块703,用于根据所述灰度路由信息所指示的版本信息,将所述页面访问请求重定向到灰度版本对应的页面,或者返回正式版本对应的页面数据。前端服务器接收到灰度路由信息后,判断灰度路由信息所指示的版本信息为灰度版本还是正式版本,如果灰度路由信息所指示的版本信息为灰度版本,则将页面访问请求重定向到相应的灰度页面;如果灰度路由信息所指示的版本信息为正式版本,则将正式页面的页面数据返回至客户端。
131.另外,本发明实施例的用于灰度发布的前端服务器700还可以包括:第一调用模块、获取模块和第二调用模块(图7中未示出)。其中,第一调用模块,用于接收与所述页面访问请求相应的服务访问请求;确定所述灰度路由信息指示前后端同时切量,且所述灰度路由信息所指示的版本信息为灰度版本,则调用灰度服务;以及确定所述灰度路由信息指示前后端同时切量,且所述灰度路由信息所指示的版本信息为正式版本,则调用正式服务。
132.获取模块,用于获取所述灰度路由策略。第二调用模块,用于确定所述灰度路由信息指示前后端不同时切量,判断所述服务访问请求是否满足所述灰度路由策略;如果所述服务访问请求满足所述灰度路由策略,则调用灰度服务;以及如果所述服务访问请求不满足所述灰度路由策略,则调用正式服务。可以理解的是,上述全部模块构成前端服务器的灰
度选择模块。
133.图8是根据本发明实施例的用于灰度发布的配置服务器的主要模块的示意图。如图8所示,本发明实施例的用于灰度发布的配置服务器800,主要包括:
134.请求接收模块801,用于接收页面访问请求。当前端服务器访问页面时,可以通过网关向配置服务器发送页面访问请求。实施例中,该页面访问请求可以包括请求网址和发起访问的用户的信息,比如用户名等。
135.信息确定模块802,用于根据配置的灰度路由策略和所述页面访问请求,确定灰度路由信息。配置服务器接收到页面访问请求后,根据灰度路由策略和页面访问请求确定出灰度路由信息。其中,灰度路由信息可用于指示所访问页面的版本信息,该版本信息包括灰度版本和正式版本。
136.信息发送模块803,用于发送所述灰度路由信息。配置服务器将确定出的灰度路由信息发送至前端服务器,以使得前端服务器根据所述灰度路由信息所指示的版本信息,将所述页面访问请求重定向到灰度版本对应的页面,或者返回正式版本对应的页面数据。可以理解的是,上述三个模块构成配置服务器的灰度控制模块。
137.从以上描述可以看出,实施例基于灰度路由信息中指示的版本信息,确定是否需要将页面访问请求重定向至灰度版本对应页面,在前端实现了单独的灰度发布,代码侵入小,系统改造量小;使用目标网址代表应该访问的版本信息,进而将目标网址与请求网址进行比对,确定应该访问灰度版本还是正式版本,实现简单可靠。
138.图9示出了可以应用本发明实施例的前后端分离的灰度发布方法或前端服务器的示例性系统架构900。
139.如图9所示,系统架构900可以包括终端设备901、902、903,网络904、906、前端服务器905和后端服务器907、908、909。网络904用以在终端设备901、902、903和前端服务器905之间提供通信链路的介质。网络906用以在前端服务器905和后端服务器907、908、909之间提供通信链路的介质。网络904、906可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
140.用户可以使用终端设备901、902、903通过网络904与前端服务器905交互,以接收或发送消息等。终端设备901、902、903上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
141.终端设备901、902、903可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
142.前端服务器905可以是提供各种服务的服务器,例如对用户利用终端设备901、902、903发送的页面访问请求/服务访问请求进行处理的后台管理服务器。后台管理服务器可以基于灰度路由信息对页面访问请求进行处理,并将处理结果(例如页面数据)反馈给终端设备。
143.后端服务器907、908、909也可以是提供各种服务的服务器,例如包括提供灰度路由策略配置、确定灰度路由信息的配置服务器,还包括对来自前端服务器的服务访问请求进行响应的后台服务器。
144.需要说明的是,本技术实施例所提供的前后端分离的灰度发布方法一般由前端服务器905执行。
145.应该理解,图9中的终端设备、网络、前端服务器和后端服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、前端服务器和后端服务器。
146.根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
147.本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种前后端分离的灰度发布方法。
148.本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种前后端分离的灰度发布方法。
149.下面参考图10,其示出了适用于来实现本发明实施例的电子设备的计算机系统1000的结构示意图。图10示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
150.如图10所示,计算机系统1000包括中央处理单元(cpu)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。在ram 1003中,还存储有计算机系统1000操作所需的各种程序和数据。cpu 1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。
151.以下部件连接至i/o接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
152.特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(cpu)1001执行时,执行本发明的系统中限定的上述功能。
153.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可
读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
154.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
155.描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、接收模块和处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“发送页面访问请求的模块”。
156.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:发送页面访问请求;接收响应于所述页面访问请求的灰度路由信息;其中,所述灰度路由信息根据配置的灰度路由策略和所述页面访问请求确定,用于指示所访问页面的版本信息;根据所述灰度路由信息所指示的版本信息,将所述页面访问请求重定向到灰度版本对应的页面,或者返回正式版本对应的页面数据。
157.本发明实施例的技术方案,基于灰度路由信息中指示的版本信息,确定是否需要将页面访问请求重定向至灰度版本对应页面,在前端实现了单独的灰度发布,代码侵入小,系统改造量小;使用目标网址代表应该访问的版本信息,进而将目标网址与请求网址进行比对,确定应该访问灰度版本还是正式版本,实现简单可靠。
158.上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
159.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献