路由控制方法、装置、计算机设备及存储介质与流程
未命名
07-19
阅读:67
评论:0

1.本技术涉及路由技术领域,尤其涉及一种路由控制方法、装置、计算机设备及存储介质。
背景技术:
2.灰度发布是一种常见的发布技术,在灰度发布中,将部分用户路由到新版本的服务,以达到安全过渡的目的。服务具有静态部署和动态部署两种部署方式。现有的路由技术通常通过ngnix实现,nginx是一个高性能的http和反向代理web服务器,它只能实现灰度发布与静态部署的结合,或者灰度发布与动态部署的结合,即,nginx进行路由时,只能将请求路由到部署方式相同的服务,无法实现灰度发布中既路由到静态部署的服务,又路由到动态部署的服务,这种限制给服务部署和灰度发布带来了诸多不便。
技术实现要素:
3.本技术实施例的目的在于提出一种路由控制方法、装置、计算机设备及存储介质,以在灰度发布中,实现同时支持服务静态部署与动态部署的路由。
4.为了解决上述技术问题,本技术实施例提供一种路由控制方法,采用了如下所述的技术方案:
5.通过网关服务器接收针对服务的访问请求;
6.获取所述网关服务器中的灰度策略,所述灰度策略预先基于路由需求编写,并被存储到所述网关服务器,所述灰度策略用于路由控制;
7.基于所述灰度策略确定所述访问请求所对应的服务版本,并通过所述网关服务器将所述访问请求路由至支持所述服务版本的服务器,其中,所述服务具有多个服务版本,所述服务当前以至少一种部署方式进行部署,所述部署方式包括静态部署和动态部署。
8.为了解决上述技术问题,本技术实施例还提供一种路由控制装置,采用了如下所述的技术方案:
9.请求接收模块,用于通过网关服务器接收针对服务的访问请求;
10.策略获取模块,用于获取所述网关服务器中的灰度策略,所述灰度策略预先基于路由需求编写,并被存储到所述网关服务器,所述灰度策略用于路由控制;
11.请求路由模块,用于基于所述灰度策略确定所述访问请求所对应的服务版本,并通过所述网关服务器将所述访问请求路由至支持所述服务版本的服务器,其中,所述服务具有多个服务版本,所述服务当前以至少一种部署方式进行部署,所述部署方式包括静态部署和动态部署。
12.为了解决上述技术问题,本技术实施例还提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的路由控制方法的步骤。
13.为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,所述计
算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的路由控制方法的步骤。
14.与现有技术相比,本技术实施例主要有以下有益效果:通过网关服务器接收针对服务的访问请求,网关服务器存储有灰度策略,服务可以进行灰度发布,且具有多个不同的服务版本,灰度策略完全根据需求独立编写,可以实现各种路由控制;在灰度发布中基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署;本技术通过独立的灰度策略实现了同时支持服务静态部署与动态部署的路由,减少了灰度发布中服务部署上的限制。
附图说明
15.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1是本技术可以应用于其中的示例性系统架构图;
17.图2是根据本技术的路由控制方法的一个实施例的流程图;
18.图3是根据本技术的路由控制装置的一个实施例的结构示意图;
19.图4是根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
20.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
21.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
22.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
23.如图1所示,系统架构100可以包括终端设备101、102,网络103、网关服务器104和服务器105、106。网络103用以在终端设备101、102,网关服务器104和服务器105、106之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
24.用户可以使用终端设备101、102通过网络103与网关服务器104和服务器105、106交互,以接收或发送消息等。终端设备101、102上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
25.终端设备101、102可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
26.网关服务器104中存储有灰度策略,可以对访问请求进行路由;网关服务器104也可以支持服务版本,例如在网关服务器104上对服务进行静态部署。
27.服务器105、106可以是提供各种服务的服务器,例如对终端设备101、102上显示的页面提供支持的后台服务器。服务器105、106上部署有服务版本,例如在服务器105、106上对服务进行静态部署或动态部署。
28.需要说明的是,本技术实施例所提供的路由控制方法一般由网关服务器执行,相应地,路由控制装置一般设置于网关服务器中。
29.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、网关服务器和服务器。
30.继续参考图2,示出了根据本技术的路由控制方法的一个实施例的流程图。所述的路由控制方法,包括以下步骤:
31.步骤s201,通过网关服务器接收针对服务的访问请求。
32.在本实施例中,路由控制方法运行于其上的电子设备(例如图1所示的网关服务器)可以通过有线连接方式或者无线连接方式与终端设备或者服务器进行通信。需要指出的是,上述无线连接方式可以包括但不限于3g/4g/5g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
33.其中,服务是指可以为用户提供各种功能的软件对象,例如网页。
34.具体地,用户可以操作终端,通过终端发起针对服务的访问请求,该访问请求用于从服务获取信息,例如,当服务为网页时,访问请求可以用于请求网页资源文件,以便终端根据网页资源文件加载网页,并使得用户可以使用网页中的各种功能。
35.访问请求会被网关服务器接收到。网关服务器可以基于openresty构建,openresty又称ngx_openresty,是一个基于nginx与lua的高性能web平台,其内部集成了大量的lua库、第三方模块以及大多数的依赖项。本技术中,网关服务器起到代理路由服务的作用,网关服务器除了基于openresty构建,还可以基于其他代理服务构建,例如nginx、cloudflare等,或者根据自主编写的代理服务实现。
36.步骤s202,获取网关服务器中的灰度策略,灰度策略预先基于路由需求编写,并被存储到网关服务器,灰度策略用于路由控制。
37.具体地,本技术中的服务可以进行灰度发布,因此服务可以具有多个不同的服务版本,不同的服务版本所包含的内容以及功能存在差异,例如,服务版本v1.0不提供签到功能,服务版本v2.0提供签到功能。
38.因此,本技术需要对访问请求进行路由,以便由合适的服务版本对访问请求进行处理。网关服务器中预先配置好了灰度策略,灰度策略预先由开发人员根据路由需求编写然后存储到网关服务器,灰度策略决定了如何对访问请求进行路由,它可以完全根据依照
路由需求实现路由控制。
39.步骤s203,基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务具有多个服务版本,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署。
40.具体地,服务的各服务版本部署于服务器,根据灰度策略确定访问请求所对应的服务版本,并由网关服务器将访问请求路由至支持该服务版本的服务器。
41.本技术中的服务时刻可以通过至少一种部署方式进行部署,部署方式包括静态部署和动态部署,即,服务可以同时进行静态部署和动态部署,并且,可以静态部署多个不同的服务版本,并同时动态部署多个不同的服务版本。
42.通常,灰度发布借助ngnix实现路由,ngnix只能实现灰度发布与静态部署的结合,或者灰度发布与动态部署的结合,即,nginx进行路由时,要求服务只能具有一种部署方式。本技术中的网关服务器使用独立编写的灰度策略进行路由控制,不使用ngnix中的方法进行路由,而是预先由开发人员根据需求编写灰度策略,并将灰度策略写入网关服务器。网关服务器根据全新方式的灰度策略进行路由判断,并且不再对服务的部署方式进行限制。需要注意的是,虽然本技术中的路由服务器可以基于openresty、nginx、cloudflare等代理服务构建,但是网关服务器只使用代理服务的基本能力,路由控制等其他能力都是基于独立编写的灰度策略实现,以克服现有的各种代理服务的功能限制。
43.本实施例中,通过网关服务器接收针对服务的访问请求,网关服务器存储有灰度策略,服务可以进行灰度发布,且具有多个不同的服务版本,灰度策略完全根据需求独立编写,可以实现各种路由控制;在灰度发布中基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署;本技术通过独立的灰度策略实现了同时支持服务静态部署与动态部署的路由,减少了灰度发布中服务部署上的限制。
44.进一步的,上述步骤s201之后,还可以包括:获取服务的服务类型;当服务类型为非灰度服务时,将访问请求路由至支持服务的服务器;当服务类型为灰度服务时,获取网关服务器中的灰度策略。
45.具体地,网关服务器接收到针对服务的访问请求后,先获取服务的服务类型。服务类型由服务是否存在灰度决定,包括非灰度服务和灰度服务;其中,非灰度服务不涉及灰度发布,此时,服务涉及服务版本以及服务器是唯一的,可以直接将访问请求路由至支持服务的服务器;灰度服务涉及灰度发布,此时需要获取网关服务器中的灰度策略,以便借助灰度策略进行路由。
46.本实施例中,获取服务的服务类型,当服务类型为非灰度服务时,服务不涉及灰度,可以直接将访问请求路由至支持服务的服务器;当服务类型为灰度服务时,服务涉及灰度,获取灰度策略,以便根据灰度策略实现路由。
47.进一步的,上述基于灰度策略确定访问请求所对应的服务版本的步骤可以包括:当灰度策略中存在指定版本时,将指定版本确定为访问请求所对应的服务版本;当灰度策略中不存在指定版本时,从访问请求中提取请求参数,其中,请求参数包括定位符参数、访问对象标识、流量来源标识和网际协议地址;基于灰度策略和请求参数,确定访问请求所对应的服务版本。
48.具体地,灰度策略中可以记录指定版本,指定版本是写定的服务版本。即便服务涉及灰度发布,也可以通过灰度策略设置当前是否开启灰度;灰度策略中是否记录了指定版本,可以视作是否开启灰度的开关。并且,灰度策略中的指定版本可以随时进行切换,允许实时修改。
49.当灰度策略中存在指定版本时,将指定版本确定为访问请求所对应的服务版本;其中,指定版本可以是当前各服务版本中的任意一个。
50.当灰度策略中不存在指定版本时,表示灰度开启,从访问请求中提取请求参数。请求参数是访问请求包含的一些详细参数,包括定位符参数、访问对象标识、流量来源标识和网际协议地址,各请求参数的概念将在后文进行详细描述。
51.灰度策略记载了根据请求参数进行路由的判断逻辑,基于灰度策略和请求参数,可以确定访问请求所对应的服务版本。
52.本实施例中,指定版本是指定的服务版本,灰度策略中是否记载指定版本,决定了是否开启灰度;当灰度策略中存在指定版本时,直接将指定版本确定为访问请求所对应的服务版本;当不存在指定版本时,从访问请求中提取请求参数,根据灰度策略和请求参数确定访问请求所对应的服务版本,实现灰度路由。
53.进一步的,当请求参数为定位符参数时,上述基于灰度策略和请求参数,确定访问请求所对应的服务版本的步骤可以包括:在灰度策略中查询定位符参数所对应的服务版本;将定位符参数所对应的服务版本,确定为访问请求所对应的服务版本。
54.具体地,访问请求中具有url(uniform resource locator,统一资源定位符,它是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址)。
55.用户在输入url时,可以在url中添加定位符参数,不同的定位符参数对应不同的服务版本。网关服务器获取url中的定位符参数,在灰度策略中查询定位符参数所对应的服务版本,并将定位符参数所对应的服务版本,确定为访问请求所对应的服务版本。
56.在一个实施例中,定位符参数的功能开放给服务提供方的人员使用,例如提供给测试人员使用。通过定位符参数可以直接进入服务版本,快速进行测试,不必受到灰度影响。
57.本实施例中,在灰度策略中查询定位符参数所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本,实现了依据定位符参数的路由。
58.进一步的,当请求参数为访问对象标识时,上述基于灰度策略和请求参数,确定访问请求所对应的服务版本的步骤可以包括:获取访问对象标识所对应的对象缓存数据;提取对象缓存数据中的服务版本和灰度版本;提取灰度策略中的灰度版本;当对象缓存数据中的灰度版本与灰度策略中的灰度版本一致时,将对象缓存数据中的服务版本,确定为访问请求所对应的服务版本。
59.具体地,本实施例主要实现访问版本的一致性。当用户访问某个服务版本后,会生成对象缓存数据。对象缓存数据即cookies,指服务(例如网站)为了辨别用户身份而储存的数据(通常经过加密),它满足rfc6265标准。
60.访问对象标识用于标识访问对象,例如用户所使用账号的名称、终端的网际协议地址或物理地址等。获取访问对象标识所对应的对象缓存数据,对象缓存数据中具有服务
版本和灰度版本,其中的服务版本是指用户上次所访问的服务版本,例如用户上次访问的服务版本是v1.0,则对象缓存数据中记录的服务版本为v1.0。灰度版本是指灰度的版本,例如在进行第一轮灰度时,服务版本为v1.0和v2.0,此时灰度版本记为1.0.0;在进行第二轮灰度时,服务版本为v1.0和v3.0,此时灰度版本记为1.0.1;或者在进行第二轮灰度时,调整了灰度策略,此时将灰度版本记为1.0.1。
61.然后获取灰度策略中的灰度版本,比较对象缓存数据中的灰度版本与灰度策略中的灰度版本是否一致;如果一致,则保持访问版本的一致性,将对象缓存数据中的服务版本,确定为访问请求所对应的服务版本,使得用户本次与之前访问的服务版本相同;如果不一致,表示开启了新一轮的灰度,需要清空对象缓存数据,重新进行路由。通过灰度策略中的灰度版本,可以随时开启新一轮的灰度。
62.本实施例中,获取访问对象标识所对应的对象缓存数据,并从中提取服务版本和灰度版本,提取灰度策略中的灰度版本;当两个灰度版本一致时,将对象缓存数据中的服务版本,确定为访问请求所对应的服务版本,确保了用户访问的一致性,实现了依据访问对象标识的路由。
63.进一步的,当请求参数为流量来源标识时,上述基于灰度策略和请求参数,确定访问请求所对应的服务版本的步骤可以包括:当流量来源标识为第一来源标识时,在灰度策略中查询第一来源标识所对应的服务版本;将第一来源标识所对应的服务版本,确定为访问请求所对应的服务版本。
64.具体地,流量来源标识表示访问请求的流量来源,流量来源标识包括第一来源标识和第二来源标识;在一个实施例中,第一来源标识表示流量是付费流量,第二来源标识表示流量是免费流量,这里的付费和免费,是对服务运营方而言的;服务运营方可以通过互联网投放广告等营销信息,当用户通过广告链接等营销信息访问服务时,流量属于付费流量,访问请求中带有第一来源标识;如果用户没有通过广告链接等访问服务,流量属于免费流量,访问请求中带有第二来源标识。
65.第一来源标识可以是服务运营方在投放的url链接中添加的utm等一系列参数,比如utm_source、utm_term,用以追踪流量的来源,以便进行数据分析,例如投放到aaa网站的广告,url链接中会带上utm_channel=aaa类似的参数,用户通过此url链接访问时,网关服务器便会获得此参数。第一来源标识决定了所对应的服务版本,具体可以在灰度策略中查询第一来源标识所对应的服务版本,并将第一来源标识所对应的服务版本,确定为访问请求所对应的服务版本。可以理解,服务运营方可以修改灰度策略,从而修改第一来源标识所对应的服务版本。
66.本实施例中,当流量来源标识为第一来源标识时,在灰度策略中查询第一来源标识所对应的服务版本;将第一来源标识所对应的服务版本,确定为访问请求所对应的服务版本,实现了依据流量来源标识的路由,流量来源标识与业务相关,实现了路由与业务的结合。
67.进一步的,当流量来源标识为第二来源标识时,上述基于灰度策略和请求参数,确定访问请求所对应的服务版本的步骤还可以包括:获取请求参数中的网际协议地址;对网际协议地址进行哈希运算得到哈希值;对哈希值进行取模运算得到取模结果;获取灰度策略中的比例分配信息;根据比例分配信息确定取模结果所对应的服务版本,并将取模结果
所对应的服务版本,确定为访问请求所对应的服务版本。
68.具体地,当流量来源标识为第二来源标识时,获取请求参数中的网际协议地址(也叫ip地址,internet protocol address),该网际协议地址是终端的网际协议地址。
69.对网际协议地址进行哈希运算得到哈希值;然后对哈希值进行取模运算得到取模结果;在取模时,可以根据服务版本的数量进行取模,例如,当前有三个服务版本,则根据哈希值和数字“3”进行取模。
70.本技术对取模结果按比例进行分配,例如,将30%的流量分配至服务版本v1.0,则可以预先随机确定取模结果与各服务版本之间的对应关系,得到比例分配信息。
71.在应用时,得到取模结果后,获取灰度策略中的比例分配信息,根据比例分配信息确定取模结果所对应的服务版本,并将取模结果所对应的服务版本,确定为访问请求所对应的服务版本。
72.本实施例中,获取请求参数中的网际协议地址;对网际协议地址进行哈希运算得到哈希值,对哈希值进行取模运算得到取模结果;获取灰度策略中的比例分配信息,根据比例分配信息确定取模结果所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本,实现了基于网际协议地址的路由。
73.在一个实施例中,在根据灰度策略确定访问请求所对应的服务版本时,先确认灰度策略中是否存在指定版本,如果存在,则将指定版本确定为访问请求所对应的服务版本;如果不存在,则根据请求参数和灰度策略进行路由。在上文中提到请求参数包括定位符参数、访问对象标识、流量来源标识和网际协议地址,在本实施例中,各种请求参数的使用具有先后顺序。
74.首先确认访问请求中是否存在定位符参数,如果存在,则在灰度策略中查询定位符参数所对应的服务版本,将该服务版本确定为访问请求所对应的服务版本。
75.如果不存在定位符参数,则从访问请求中提取访问对象标识,并获取访问对象标识所对应的对象缓存数据。如果对象缓存数据中的灰度版本与灰度策略中的灰度版本一致,将对象缓存数据中的服务版本确定为访问请求所对应的服务版本,以实现访问版本的一致性。
76.如果对象缓存数据中的灰度版本与灰度策略中的灰度版本不一致,或者不存在访问对象标识所对应的对象缓存数据(例如用户第一次访问服务),则从访问请求中提取流量来源标识;当流量来源标识为第一来源标识时,表示流量为付费流量,在灰度策略中查询第一来源标识所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本。
77.如果流量来源标识为第二来源标识,表示流量为免费流量,从访问请求中提取网际协议地址,对网际协议地址进行哈希运算得到哈希值,对哈希值进行取模运算得到取模结果;获取灰度策略中的比例分配信息,根据比例分配信息确定取模结果所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本。
78.本实施例根据指定版本、定位符参数、访问对象标识、流量来源标识和网际协议地址对访问请求进行综合判断,在各种情况下都可以实现路由。
79.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储
介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
80.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
81.进一步参考图3,作为对上述图2所示方法的实现,本技术提供了一种路由控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
82.如图3所示,本实施例所述的路由控制装置300包括:请求接收模块301、策略获取模块302以及请求路由模块303,其中:
83.请求接收模块301,用于通过网关服务器接收针对服务的访问请求。
84.策略获取模块302,用于获取网关服务器中的灰度策略,灰度策略预先基于路由需求编写,并被存储到网关服务器,灰度策略用于路由控制。
85.请求路由模块303,用于基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务具有多个服务版本,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署。
86.本实施例中,通过网关服务器接收针对服务的访问请求,网关服务器存储有灰度策略,服务可以进行灰度发布,且具有多个不同的服务版本,灰度策略完全根据需求独立编写,可以实现各种路由控制;在灰度发布中基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署;本技术通过独立的灰度策略实现了同时支持服务静态部署与动态部署的路由,减少了灰度发布中服务部署上的限制。
87.在本实施例的一些可选的实现方式中,路由控制装置300还可以包括:类型获取模块以及访问路由模块,其中:
88.类型获取模块,用于获取服务的服务类型。
89.访问路由模块,用于当服务类型为非灰度服务时,将访问请求路由至支持服务的服务器。
90.所述请求路由模块303还用于当服务类型为灰度服务时,获取网关服务器中的灰度策略。
91.本实施例中,获取服务的服务类型,当服务类型为非灰度服务时,服务不涉及灰度,可以直接将访问请求路由至支持服务的服务器;当服务类型为灰度服务时,服务涉及灰度,获取灰度策略,以便根据灰度策略实现路由。
92.在本实施例的一些可选的实现方式中,请求路由模块303可以包括:指定确定子模块、参数提取子模块以及版本确定子模块,其中:
93.指定确定子模块,用于当灰度策略中存在指定版本时,将指定版本确定为访问请求所对应的服务版本。
94.参数提取子模块,用于当灰度策略中不存在指定版本时,从访问请求中提取请求参数,其中,请求参数包括定位符参数、访问对象标识、流量来源标识和网际协议地址。
95.版本确定子模块,用于基于灰度策略和请求参数,确定访问请求所对应的服务版本。
96.本实施例中,指定版本是指定的服务版本,灰度策略中是否记载指定版本,决定了是否开启灰度;当灰度策略中存在指定版本时,直接将指定版本确定为访问请求所对应的服务版本;当不存在指定版本时,从访问请求中提取请求参数,根据灰度策略和请求参数确定访问请求所对应的服务版本,实现灰度路由。
97.在本实施例的一些可选的实现方式中,当请求参数为定位符参数时,版本确定子模块可以包括:版本查询单元以及第一确定单元,其中:
98.版本查询单元,用于在灰度策略中查询定位符参数所对应的服务版本。
99.第一确定单元,用于将定位符参数所对应的服务版本,确定为访问请求所对应的服务版本。
100.本实施例中,在灰度策略中查询定位符参数所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本,实现了依据定位符参数的路由。
101.在本实施例的一些可选的实现方式中,当请求参数为访问对象标识时,版本确定子模块可以包括:缓存获取单元、缓存提取单元、策略提取单元以及第二确定单元,其中:
102.缓存获取单元,用于获取访问对象标识所对应的对象缓存数据。
103.缓存提取单元,用于提取对象缓存数据中的服务版本和灰度版本。
104.策略提取单元,用于提取灰度策略中的灰度版本。
105.第二确定单元,用于当对象缓存数据中的灰度版本与灰度策略中的灰度版本一致时,将对象缓存数据中的服务版本,确定为访问请求所对应的服务版本。
106.本实施例中,获取访问对象标识所对应的对象缓存数据,并从中提取服务版本和灰度版本,提取灰度策略中的灰度版本;当两个灰度版本一致时,将对象缓存数据中的服务版本,确定为访问请求所对应的服务版本,确保了用户访问的一致性,实现了依据访问对象标识的路由。
107.在本实施例的一些可选的实现方式中,当请求参数为流量来源标识时,版本确定子模块可以包括:来源查询单元以及第三确定单元,其中:
108.来源查询单元,用于当流量来源标识为第一来源标识时,在灰度策略中查询第一来源标识所对应的服务版本。
109.第三确定单元,用于将第一来源标识所对应的服务版本,确定为访问请求所对应的服务版本。
110.本实施例中,当流量来源标识为第一来源标识时,在灰度策略中查询第一来源标识所对应的服务版本;将第一来源标识所对应的服务版本,确定为访问请求所对应的服务版本,实现了依据流量来源标识的路由,流量来源标识与业务相关,实现了路由与业务的结合。
111.在本实施例的一些可选的实现方式中,当流量来源标识为第二来源标识时,版本确定子模块可以包括:地址获取单元、哈希运算单元、取模运算单元、比例获取单元以及第四确定单元,其中:
112.地址获取单元,用于获取请求参数中的网际协议地址。
113.哈希运算单元,用于对网际协议地址进行哈希运算得到哈希值。
114.取模运算单元,用于对哈希值进行取模运算得到取模结果。
115.比例获取单元,用于获取灰度策略中的比例分配信息。
116.第四确定单元,用于根据比例分配信息确定取模结果所对应的服务版本,并将取模结果所对应的服务版本,确定为访问请求所对应的服务版本。
117.本实施例中,获取请求参数中的网际协议地址;对网际协议地址进行哈希运算得到哈希值,对哈希值进行取模运算得到取模结果;获取灰度策略中的比例分配信息,根据比例分配信息确定取模结果所对应的服务版本,并将该服务版本确定为访问请求所对应的服务版本,实现了基于网际协议地址的路由。
118.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
119.所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(fiel d-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
120.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
121.所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如路由控制方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
122.所述处理器42在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述路由控制方法的计算机可读指令。
123.所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
124.本实施例中提供的计算机设备可以执行上述路由控制方法。此处路由控制方法可以是上述各个实施例的路由控制方法。
125.本实施例中,通过网关服务器接收针对服务的访问请求,网关服务器存储有灰度策略,服务可以进行灰度发布,且具有多个不同的服务版本,灰度策略完全根据需求独立编写,可以实现各种路由控制;在灰度发布中基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署;本技术通过独立的灰度策略实现了同时支持服务静态部署与动态部署的路由,减少了灰度发布中服务部署上的限制。
126.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的路由控制方法的步骤。所述计算机可读存储介质既可以是非易失性存储介质,也可以是易失性存储介质。
127.本实施例中,通过网关服务器接收针对服务的访问请求,网关服务器存储有灰度策略,服务可以进行灰度发布,且具有多个不同的服务版本,灰度策略完全根据需求独立编写,可以实现各种路由控制;在灰度发布中基于灰度策略确定访问请求所对应的服务版本,并通过网关服务器将访问请求路由至支持服务版本的服务器,其中,服务当前以至少一种部署方式进行部署,部署方式包括静态部署和动态部署;本技术通过独立的灰度策略实现了同时支持服务静态部署与动态部署的路由,减少了灰度发布中服务部署上的限制。
128.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
129.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
技术特征:
1.一种路由控制方法,其特征在于,包括下述步骤:通过网关服务器接收针对服务的访问请求;获取所述网关服务器中的灰度策略,所述灰度策略预先基于路由需求编写,并被存储到所述网关服务器,所述灰度策略用于路由控制;基于所述灰度策略确定所述访问请求所对应的服务版本,并通过所述网关服务器将所述访问请求路由至支持所述服务版本的服务器,其中,所述服务具有多个服务版本,所述服务当前以至少一种部署方式进行部署,所述部署方式包括静态部署和动态部署。2.根据权利要求1所述的路由控制方法,其特征在于,在所述通过网关服务器接收针对服务的访问请求的步骤之后,还包括:获取所述服务的服务类型;当所述服务类型为非灰度服务时,将所述访问请求路由至支持所述服务的服务器;当所述服务类型为灰度服务时,执行所述获取所述网关服务器中的灰度策略的步骤。3.根据权利要求1所述的路由控制方法,其特征在于,所述基于所述灰度策略确定所述访问请求所对应的服务版本的步骤包括:当所述灰度策略中存在指定版本时,将所述指定版本确定为所述访问请求所对应的服务版本;当所述灰度策略中不存在指定版本时,从所述访问请求中提取请求参数,其中,所述请求参数包括定位符参数、访问对象标识、流量来源标识和网际协议地址;基于所述灰度策略和所述请求参数,确定所述访问请求所对应的服务版本。4.根据权利要求3所述的路由控制方法,其特征在于,当所述请求参数为所述定位符参数时,所述基于所述灰度策略和所述请求参数,确定所述访问请求所对应的服务版本的步骤包括:在所述灰度策略中查询所述定位符参数所对应的服务版本;将所述定位符参数所对应的服务版本,确定为所述访问请求所对应的服务版本。5.根据权利要求3所述的路由控制方法,其特征在于,当所述请求参数为所述访问对象标识时,所述基于所述灰度策略和所述请求参数,确定所述访问请求所对应的服务版本的步骤包括:获取所述访问对象标识所对应的对象缓存数据;提取所述对象缓存数据中的服务版本和灰度版本;提取所述灰度策略中的灰度版本;当所述对象缓存数据中的灰度版本与所述灰度策略中的灰度版本一致时,将所述对象缓存数据中的服务版本,确定为所述访问请求所对应的服务版本。6.根据权利要求3所述的路由控制方法,其特征在于,当所述请求参数为所述流量来源标识时,所述基于所述灰度策略和所述请求参数,确定所述访问请求所对应的服务版本的步骤包括:当所述流量来源标识为第一来源标识时,在所述灰度策略中查询所述第一来源标识所对应的服务版本;将所述第一来源标识所对应的服务版本,确定为所述访问请求所对应的服务版本。7.根据权利要求6所述的路由控制方法,其特征在于,当所述流量来源标识为第二来源
标识时,所述基于所述灰度策略和所述请求参数,确定所述访问请求所对应的服务版本的步骤还包括:获取所述请求参数中的网际协议地址;对所述网际协议地址进行哈希运算得到哈希值;对所述哈希值进行取模运算得到取模结果;获取所述灰度策略中的比例分配信息;根据所述比例分配信息确定所述取模结果所对应的服务版本,并将所述取模结果所对应的服务版本,确定为所述访问请求所对应的服务版本。8.一种路由控制装置,其特征在于,包括:请求接收模块,用于通过网关服务器接收针对服务的访问请求;策略获取模块,用于获取所述网关服务器中的灰度策略,所述灰度策略预先基于路由需求编写,并被存储到所述网关服务器,所述灰度策略用于路由控制;请求路由模块,用于基于所述灰度策略确定所述访问请求所对应的服务版本,并通过所述网关服务器将所述访问请求路由至支持所述服务版本的服务器,其中,所述服务具有多个服务版本,所述服务当前以至少一种部署方式进行部署,所述部署方式包括静态部署和动态部署。9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的路由控制方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的路由控制方法的步骤。
技术总结
本申请实施例属于路由技术领域,涉及一种路由控制方法,包括:通过网关服务器接收针对服务的访问请求;获取所述网关服务器中的灰度策略,所述灰度策略预先基于路由需求编写,并被存储到所述网关服务器,所述灰度策略用于路由控制;基于所述灰度策略确定所述访问请求所对应的服务版本,并通过所述网关服务器将所述访问请求路由至支持所述服务版本的服务器,其中,所述服务具有多个服务版本,所述服务当前以至少一种部署方式进行部署,所述部署方式包括静态部署和动态部署。本申请还提供一种路由控制装置、计算机设备及存储介质。本申请在灰度发布中,实现同时支持服务静态部署与动态部署的路由。署的路由。署的路由。
技术研发人员:董玉城 兰锦 刘业兴
受保护的技术使用者:深圳复临科技有限公司
技术研发日:2023.03.23
技术公布日:2023/7/18
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/