一种微服务网关动态路由的实现方法与流程

文档序号:25044052发布日期:2021-05-14 11:37阅读:288来源:国知局
一种微服务网关动态路由的实现方法与流程

1.本发明涉及计算机应用领域,具体提供一种微服务网关动态路由的实现方法。


背景技术:

2.在微服务+多端应用架构系统中,随着业务范围的扩大,服务数量的激增,微服务应用越来越多,每个微服务应用多实例部署,这种部署架构下,对于软件研发的开发、测试、运维等环节都面临着不小的工作压力。随着架构的升级,微服务应用需要越来越专注,专注于自己的角色,用户应用负责用户信息的维护和管理以及查询,认证应用负责用户的认证授权和权限管理,诸如此类。
3.面对越来越多的客户端,移动端(移动app、微信端、微信小程序、微信公众号等)、pc端等,在没有网关的情况下,客户端需要调用多个服务才能完成一个业务需求,在客户端直接与微服务应用通信,会存在以下可能和风险:
4.一个业务往往需要多个微服务接口协调完成,这样就需要客户端发起多次的微服务的网络请求,客户端同时要维护微服务应用的地址,增加了客户端的复杂度,增加了网络和业务压力;同时客户端在发起微服务请求时存在跨域的可能,部分场景下存在无法解决的风险;由于每个服务都需要独立认证,增大了认证微服务应用压力;某些核心微服务使用防护墙防护,客户端无法提供直接访问。
5.往往需要一个独立的应用来统一处理负载均衡、安全防护、流量管控等功能,这样微服务网关便孕育而生。微服务网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过微服务网关。微服务网关不负责处理具体的业务,仅负载均衡、安全防护、流量管控、路由转发等公共基础类的功能。
6.微服务网关的选型有很多种,例如nginx、zuul、kong等,基于spring cloud微服务生态,选择spring cloud gateway作为微服务网关。微服务网关的路由配置相对复杂,系统上线调试初期可能会出现频繁修改和变更路由配置,以适应业务需求,但每次修改配置后路由无法实时生效,晦涩难懂的yml配置,对于运维人员不够友好。多实例微服务网关的部署架构下,网关节点的增多也给运维带来了更多的的工作量,排查和检查问题时会更加困难。


技术实现要素:

7.本发明是针对上述现有技术的不足,提供一种实用性强的微服务网关动态路由的实现方法。
8.本发明解决其技术问题所采用的技术方案是:
9.一种微服务网关动态路由的实现方法,客户端向微服务网关发送请求,根据路由配置信息,匹配请求path、请求header和请求method信息,将请求转发至微服务应用,微服务网关依据动态路由规则实现核心路由转发。
10.进一步的,在微服务网关管理填写路由名称、路由编码、路由前缀和路由方式,微
服务网关管理调用服务配置中心将网关的路由配置信息存入配置中心,服务配置中心向订阅配置的微服务网关分布路由配置信息。
11.进一步的,订阅路由配置信息的微服务网关在接收到路由信息后,调用refresh操作刷新微服务网关内存中的路由配置信息,向多个微服务网关分发订阅数据,配合服务配置中心的回滚配置,用于实现路由配置误操作的快速回滚。
12.进一步的,具体分为两部分:
13.s1、管理流程
14.s101、发布路由配置;
15.s102、同步配置;
16.s103、分发路由配置;
17.s2、路由转发
18.s201、发起请求;
19.s202、负载到微服务网关;
20.s203、请求转发。
21.进一步的,在s101发布路由配置中,管理员在管理端录入路由信息后,发布路由配置,路由配置以yml格式管理。
22.进一步的,在步骤s102同步配置中,服务配置中心接收到路由配置信息后,写入配置中心数据库,配置数据主键gateway

route.yml,配置分组gateway_group。
23.进一步的,在步骤s103分发路由配置中,配置中心存储更新路由配置的同时,向订阅配置信息的微服务网关分发路由配置信息,微服务网关收到路由配置信息后,调用refresh操作,更新网关内存中的路由表配置信息。
24.进一步的,在步骤s201发起请求中,用户从用户端发起网络请求,到达负载均衡设备。
25.进一步的,在步骤s202负载到微服务网关中,负载均衡设备转发流量到微服务网关的实例上。
26.进一步的,在步骤s203请求转发中,为服务网关根据路由配置信息,通过匹配path,将网络请求转发到微服务应用,微服务应用处理请求后做出响应返回用户端。
27.本发明的一种微服务网关动态路由的实现方法和现有技术相比,具有以下突出的有益效果:
28.本发明能为微服务架构中的微服务网关提供动态路由管理方式,完全替代对微服务网关路由配置文件的编码式操作,并解决了修改配置文件需要重启的问题,web图形化操作简化了管理维护流程,实现简洁、高效、灵活、安全和统一的微服务网关动态路由管理,减少系统调试和系统运维的工作量。
附图说明
29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.附图1是一种微服务网关动态路由的实现方法的流程示意图。
具体实施方式
31.为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
32.下面给出一个最佳实施例:
33.如图1所示,本实施例中的一种微服务网关动态路由的实现方法,客户端向微服务网关发送请求,微服务网关接收到请求,根据路由配置信息,匹配请求path、请求header、请求method(post/get)等信息,将请求转发至微服务应用,微服务网关依据的动态路由规则实现核心路由转发功能。
34.在微服务网关管理填写路由名称、路由编码(默认使用服务名称即可,即application.name)、路由前缀(/path/**)、路由方式(负载均衡/反向代理)等信息,微服务网关管理调用服务配置中心将网关的路由配置信息存入配置中心;服务配置中心向订阅配置的微服务网关发布路由配置信息。
35.订阅路由配置信息的微服务网关在接收到路由信息后,调用refresh操作刷新微服务网关内存中的路由配置信息,无需重新启动微服务网关,同时可以向多个微服务网关分发订阅数据。同时,配合服务配置中心的回滚配置功能,可以实现路由配置误操作的快速回滚。
36.一、管理流程
37.s101、发布路由配置,管理员在管理端录入路由信息后,发布路由配置,路由配置以yml格式管理,路由配置数据结构体如下:
[0038][0039]
关键数据结构说明:
[0040]
id:路由主键
[0041]
uri:微服务应用的名称
[0042]
path:路由路径,用户端请求访问的前缀
[0043]
s102、同步配置,服务配置中心接收到路由配置信息后,写入配置中心数据库,配置数据主键:gateway

route.yml,配置分组:gateway_group。
[0044]
s103、分发路由配置,配置中心存储更新路由配置的同时,向订阅配置信息(配置数据主键:gateway

route.yml,配置分组:gateway_group)的微服务网关分发路由配置信息。微服务网关收到路由配置信息后,调用refresh操作,更新网关内存中的路由表配置信息,及时生效,不再需要人工重启微服务网关。
[0045]
二、路由转发
[0046]
s201、发起请求,用户从用户端发起网络请求,到达负载均衡设备(例如nginx、apache等)。
[0047]
s202、负载到微服务网关,负载均衡设备转发流量到微服务网关的某个实例上。
[0048]
s203、请求转发,微服务网关根据路由配置信息,通过匹配path等方式,将网络请求转发到微服务应用,微服务应用处理请求后做出响应返回用户端。
[0049]
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种微服务网关动态路由的实现方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
[0050]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1