内网微服务治理方法、装置与流程

1.本发明涉及计算机技术领域,特别是涉及一种内网微服务治理方法、装置。
背景技术:
2.目前互联网公司基本上使用主流的微服务架构开发模式。随着公司的发展,应用的数量日益增多达到百级千级,api接口甚至达到万级别(api泛滥)。这使得内网微服务之间的调用关系非常复杂,这对服务治理带来了新的挑战。
3.由于内部微服务之间的处理会增加复杂度和风险,大部分公司只对来自外网请求的api网关治理。也有少部分公司通过在内网搭建多套api网关集群,分别管理不同业务/平台的应用api接口,但对于跨业务/平台的请求,必须请求相应的网关域名。上述传统方案更适用于前期约定一种规范,所有新增需要请求网关的场景,直接可通过指定网关域名或网关应用服务发现的方式发起请求。同时请求路径可能需指定命名空间、api分组目录前缀。在已经大量使用feignclient背景下,改造量很大。在后期面临网关下线或弃用改为直连方案时,会导致又一轮改造。目前,缺少一种简单高效的内网微服务网关治理方案。
技术实现要素:
4.基于此,为了解决以上问题本文提出了一种内网微服务治理方法、装置。通过建立领域与应用映射关系,实现同领域直连访问,跨领域走api网关的路由策略,并结合客户端路由组件实现无入侵的动态路由寻址方案。
5.根据本发明的第一方面,提供了一种内网微服务治理方法,包括以下步骤:
6.领域划分步骤,将应用按领域划分,建立应用与领域映射关系;
7.网关路由策略配置步骤,配置路由策略,将路由策略保存在配置中心,并下发到各应用中;
8.api网关搭建步骤,搭建api网关集群;
9.api发布步骤,将跨领域请求的api列表,发布到api网关白名单中;
10.路由组件设计步骤,通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;
11.灰度验证步骤,对新上线api网关进行灰度验证。
12.在一些实施例中,路由策略,包括:开关控制、领域列表、领域应用关系列表、公共应用白名单、公共api白名单;
13.开关控制包括:总开关、领域开关、应用开关的多级开关控制;
14.将路由策略保存在配置中心,并下发到各应用中包括:将路由策略保存在配置中心,并由配置中心实时下发到各应用的路由组件中。
15.在一些实施例中,搭建api网关集群,包括:基于apisix搭建api网关集群;将api网关作为微服务,实例启动后自动注册到服务注册中心;在k8s集群为api网关集群配置弹性伸缩策略。
16.在一些实施例中,api列表的获取方式包括:通过调用链分析数据与应用领域映射关系清洗输出api列表;或通过日志统计分析获取。
17.在一些实施例中,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理,包括:
18.a)应用启动时,通过配置中心的client端异步拉取路由策略信息并缓存本地;
19.b)路由策略发生变更时,配置中心实时下发变更;
20.c)应用接收到http请求时,根据路由策略判断是否允许直连;
21.d)应用发送请求到下游时,判断直连或进入api网关,并根据判断结果进行相应的服务发现和负载均衡操作。
22.在一些实施例中,对新上线api网关进行灰度验证,包括:
23.通过监控日志系统或利用promethues指标告警判断是否存在异常,存在异常则关闭开关控制中对应开关。
24.在一些实施例中,还包括流量管理步骤,获取上一时间段处理器的利用率,当利用率超过设定的上限阈值时,限制读取速度为上一时间段的90%,当利用率超过设定的下限阈值时,限制读取速度为上一时间段的110%。所述上一时间段优选为从现在至过去的15s的时间段。
25.根据本发明的第二方面,提供了一种内网微服务治理装置,包括:
26.领域划分模块,用于将应用按领域划分,建立应用与领域映射关系;
27.网关路由策略配置模块,用于配置路由策略,将路由策略保存在配置中心,并下发到各应用中;
28.api网关搭建模块,用于搭建api网关集群;
29.api发布模块,用于将跨领域请求的api列表,发布到api网关白名单中;
30.路由组件设计模块,用于通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;
31.灰度验证模块,用于对新上线api网关进行灰度验证。
32.根据本发明的第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一实施例方法的步骤。
33.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
34.通过实施本发明的上述方案,可以得到以下有益效果:
35.1.通过无代码入侵的路由组件,实现走直连或网关的这种动态寻址逻辑控制,现有feignclient服务调用方式无需任何改动。
36.2.丰富的灰度验证方案和兜底策略,降低事故风险。
37.3.从领域角度对应用进行梳理划分,明确各领域的主要职责及对外暴露的能力。相同领域可以直连请求,跨领域要求走领域网关,降低服务间调用的复杂度。内网api网关仅需搭建一套进行共享,配合弹性伸缩策略,无需每个领域分配一套。api的分级管理,能够将精力聚焦到重要的api治理上,并且跨领域请求的api为该管理提供了数据分析依据。
38.4.通过流量控制,循环降低/提升读取速度,控制处理器的利用率,降低了系统出
现事故的风险。
附图说明
39.图1是本发明的内网微服务治理方法的一些实施例的流程图;
40.图2是本发明的内网微服务治理方法的一些实施例的框架示意图;
41.图3是本发明的内网微服务治理方法的一些实施例的入请求的权限校验示意图;
42.图4是本发明的内网微服务治理方法的一些实施例的出请求的路由判断示意图;
43.图5是本发明的内网微服务治理装置的一些实施例的结构示意图;
44.图6是用于实现本发明一些实施例的计算机设备的内部结构图。
具体实施方式
45.以下将参照附图更充分地描述本发明实施例,在附图中示出了本发明实施例。然而,可以用很多不同形式来实施本发明,并且本发明不应理解为受限于在此所阐述的实施例。
46.在此所使用的术语仅用于描述特定实施例的目的,而并非意欲限制本公开。如在此所使用的那样,单数形式的“一个”、“这个”意欲同样包括复数形式,除非上下文清楚地另有所指。还应当理解,当在此使用时,术语“包括”指定出现所声明的特征、整体、步骤、操作、元件和/或组件,但并不排除出现或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
47.除非另外定义,否则在此所使用的术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所共同理解的相同意义。在此所使用的术语应解释为具有与其在该说明书的上下文以及有关领域中的意义一致的意义,而不能以理想化的或过于正式的意义来解释,除非在此特意如此定义。
48.在对本技术的具体细节进行描述之前,将对本技术将用到的术语的含义进行简单说明。
49.k8s:k8s是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩展容维护等功能,k8s的原名是kubernetes。
50.apisix:是一个动态、实时、高性能的api网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。apisix构建于nginx+ngx_lua的技术基础之上,充分利用了luajit所提供的强大性能,基于openresty+etcd实现了云原生,高性能,可扩展的微服务api网关。
51.promethues:是一个开源监控解决方案,用于收集和聚合指标作为时间序列数据。更简单地说promethues商店中的每个项目都是一个指标事件,并带有它发生的时间戳。
52.图1示出了本发明的内网微服务治理方法的一些实施例的流程图。
53.如图1所示,该方法包括:
54.领域划分步骤s102,将应用按领域划分,建立应用与领域映射关系;
55.设置领域规则(如领域名称、领域数量),一般按照公司中不同部分进行划分,相同部门负责的应用属于同一领域。
56.网关路由策略配置步骤s104,配置路由策略,将路由策略保存在配置中心,并下发
到各应用中;
57.路由策略包含开关控制、领域列表、领域应用关系列表、公共应用白名单、公共api白名单等信息。对于开关控制,支持总开关/领域开关/应用开关的多级开关策略,对路由策略在领域、应用等不同层面的开启/关闭进行控制。对一些公共服务或公共api运行直连的场景,提供白名单配置。路由策略保存在配置中心,并由其实时下发到各应用的路由组件中。其中应用白名单、api白名单以json数组形式存储在配置中心。
58.api网关搭建步骤s106,搭建api网关集群;
59.基于高性能的apisix搭建api网关集群;将api网关看出一种微服务,实例启动后自动注册到服务注册中心(一个实例可以看作一个pod);在k8s集群为api网关集群配置弹性伸缩策略;api网关集群服务于所有领域,搭建一套集群即可,无需按领域维度分别搭建。
60.内网api网关只负责内网微服务之间的请求与转发,校验逻辑简单,仅做白名单认证,验证通过则转发请求,否则拒绝请求。
61.api发布步骤s108,将跨领域请求的api列表,发布到api网关白名单中;
62.api列表的获取途径:
63.1)通过调用链分析数据与应用领域映射关系清洗输出api列表及调用次数相关信息;
64.2)通过日志统计分析。
65.路由组件设计步骤s110,通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;具体步骤如下:
66.a)应用启动时,自动通过配置中心组件client端异步拉取路由策略信息并缓存本地;
67.b)当路由策略发生变更时,配置中心实时下发变更;
68.c)当应用接收到http请求时,会根据路由策略判断是否允许直连;
69.d)当应用发送请求到下游时,会判断走直连还是走api网关,并根据判断结果进行相应的服务发现和负载均衡操作;
70.e)当需要禁用路由功能时,通过配置关闭开关。
71.灰度验证步骤s112,对新上线api网关进行灰度验证。
72.内网api网关上线初期,跨领域的请求会增加一跳,若目标应用的api未发布到网关,会导致请求失败,因此需要一个灰度验证的阶段。具体步骤如下:
73.a.应用负责人梳理和确认可能被跨领域请求的api是否发布到api网关。
74.b.该应用发布到api网关后,通过ui界面或配置中心开启当前应用的开关
75.c.监控日志系统或利用promethues指标告警判断是否有异常,若异常可能导致事故则关闭开关,并进行查缺补漏。
76.图2示出了本发明的内网微服务治理方法的一些实施例的框架示意图。
77.如图2所示,管理工作人员对领域规则进行控制,将领域规则的变更下发至路由组件,领域内应用1和应用2、应用4和应用5进行直连,不同领域间的应用3与应用4经由api网关进行连接,公共服务(应用白名单)中应用与领域a、领域b的应用之间进行直连。
78.图3示出了本发明的内网微服务治理方法的一些实施例的入请求的权限校验示意图;
79.如图3所示:应用接受http请求;路由组件(即agent组件)拦截请求;判断该请求是否来自api网关,若是则透传请求,若否则进入下一判断步骤;判断api网关是否健康,若否则透传请求,若是则进入下一判断步骤;判断开关是否启用,若否则透传请求,若是则进入下一判断步骤;判断是否命中app白名单,若是则透传请求,若否则进入下一判断步骤;判断是否同领域,若是则透传请求,若否则进入下一判断步骤;判断是否命中api白名单,若是则透传请求,若否则拒绝请求。
80.图4示出了本发明的内网微服务治理方法的一些实施例的出请求的路由判断示意图。
81.如图4所示:应用接受http请求;路由组件(即agent组件)对该请求进行拦截;判断api网关是否健康,若否则选择直连方式,若是则进入下一判断步骤;判断下游开关是否启用,若否则选择直连方式,若是则进入下一判断步骤;判断是否命中app白名单,若是则选择直连方式,若否则进入下一判断步骤;判断是否同领域,若是则选择直连方式,若否则进入下一判断步骤;判断是否命中api白名单,若是则选择直连方式,若否则选择走网关方式。直连方式:直连应用服务发现
→
请求下游应用;网关方式:网关应用服务发现
→
转发请求至api网关
→
api网关转发请求。
82.综上,本发明提供了一种内网微服务治理方法。包括:将应用按领域划分,约定领域内、领域间应用的访问控制规则;路由策略对接配置中心,由配置中心统一下发到客户端代理组件;客户端路由组件接收路由策略并监听变更,本地缓存,为降低缓存数据,路由组件仅缓存开关开启的策略信息;客户端路由组件根据路由策略,对http入请求进行校验,对http出请求进行动态寻址判断,即直连目标应用的服务发现还是api网关应用的服务发现;当api网关处于不健康或不可用状态,路由组件自动识别走直连兜底逻辑,并触发告警。通过建立领域与应用映射关系,实现同领域直连访问,跨领域走api网关的路由策略,并结合客户端路由组件实现无入侵的动态路由寻址方案。
83.图5示出了本发明的内网微服务治理装置的一些实施例的结构示意图。
84.如图5所示,实施例中的内网微服务治理装置包括:
85.领域划分模块100,用于将应用按领域划分,建立应用与领域映射关系;
86.网关路由策略配置模块200,用于配置路由策略,将路由策略保存在配置中心,并下发到各应用中;
87.api网关搭建模块300,用于搭建api网关集群;
88.api发布模块400,用于将跨领域请求的api列表,发布到api网关白名单中;
89.路由组件设计模块500,用于通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;
90.灰度验证模块600,用于对新上线api网关进行灰度验证。
91.关于一种内网微服务治理装置的具体限定可以参见上文中对于一种内网微服务治理方法的限定,在此不再赘述。上述一种内网微服务治理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
92.本发明还提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以
如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述的内网微服务治理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
93.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的内网微服务治理方法。
94.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)、直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
95.至此,已经详细描述了本发明的实施例。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
96.虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本发明的范围由所附权利要求来限定。
技术特征:
1.一种内网微服务治理方法,其特征在于,包括以下步骤:领域划分步骤,将应用按领域划分,建立应用与领域映射关系;网关路由策略配置步骤,配置路由策略,将路由策略保存在配置中心,并下发到各应用中;api网关搭建步骤,搭建api网关集群;api发布步骤,将跨领域请求的api列表,发布到api网关白名单中;路由组件设计步骤,通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;灰度验证步骤,对新上线api网关进行灰度验证。2.根据权利要求1所述的内网微服务治理方法,其特征在于,所述路由策略,包括:开关控制、领域列表、领域应用关系列表、公共应用白名单、公共api白名单;所述开关控制包括:总开关、领域开关、应用开关的多级开关控制;所述将路由策略保存在配置中心,并下发到各应用中包括:将路由策略保存在配置中心,并由配置中心实时下发到各应用的路由组件中。3.根据权利要求1所述的内网微服务治理方法,其特征在于,所述搭建api网关集群,包括:基于apisix搭建api网关集群;将api网关作为微服务,实例启动后自动注册到服务注册中心;在k8s集群为api网关集群配置弹性伸缩策略。4.根据权利要求1所述的内网微服务治理方法,其特征在于,所述api列表的获取方式包括:通过调用链分析数据与应用领域映射关系清洗输出api列表;或通过日志统计分析获取。5.根据权利要求1所述的内网微服务治理方法,其特征在于,所述路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理,包括:a)应用启动时,通过配置中心的client端异步拉取路由策略信息并缓存本地;b)路由策略发生变更时,配置中心实时下发变更;c)应用接收到http请求时,根据路由策略判断是否允许直连;d)应用发送请求到下游时,判断直连或进入api网关,并根据判断结果进行相应的服务发现和负载均衡操作。6.根据权利要求1所述的内网微服务治理方法,其特征在于,所述对新上线api网关进行灰度验证,包括:通过监控日志系统或利用promethues指标告警判断是否存在异常,存在异常则关闭开关控制中对应开关。7.根据权利要求1所述的内网微服务治理方法,其特征在于,还包括流量管理步骤,获取上一时间段处理器的利用率,当利用率超过设定的上限阈值时,限制读取速度为上一时间段的90%,当利用率超过设定的下限阈值时,限制读取速度为上一时间段的110%。8.一种内网微服务治理装置,包括:
领域划分模块,用于将应用按领域划分,建立应用与领域映射关系;网关路由策略配置模块,用于配置路由策略,将路由策略保存在配置中心,并下发到各应用中;api网关搭建模块,用于搭建api网关集群;api发布模块,用于将跨领域请求的api列表,发布到api网关白名单中;路由组件设计模块,用于通过配置中心中获取路由策略至路由组件,路由组件根据路由策略对入请求进行访问权限验证以及出请求的路由转发处理;灰度验证模块,用于对新上线api网关进行灰度验证。9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结
本发明涉及内网微服务治理方法、装置。方法包括:领域划分步骤;网关路由策略配置步骤;API网关搭建步骤;API发布步骤;路由组件设计步骤;灰度验证步骤。本发明通过建立领域与应用映射关系,实现同领域直连访问,跨领域走API网关的路由策略,并结合客户端路由组件实现无入侵的动态路由寻址方案,提供了一种高效的内网微服务治理方案。网微服务治理方案。网微服务治理方案。
技术研发人员:赵孟彬
受保护的技术使用者:上海数禾信息科技有限公司
技术研发日:2023.07.05
技术公布日:2023/10/8
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/