System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及路由配置,特别是涉及一种spring cloud gateway网关动态路由的实现方法及系统。
技术介绍
1、在信息系统中(如医院信息系统中),许多业务服务的部分接口需要配置个性化路由,当这些服务需要变更接口路由配置时,都需要开发人员手动修改网关的路由规则并同步到所有网关节点,配置非常繁琐低效且无法实现动态化,导致spring cloud gateway网关路由规则无法实现自动化管理,增加了运维成本。此外,维护人员需要具有如下专业能力:一方面,需要额外学习繁琐的spring cloud gateway路由规则;另一方面,需要学习如何修改spring cloud gateway网关代码才能实现在线实时路由配置变更。如上,导致在信息系统中配置网关路由规则及将路由规则同步到各个网关节点成本较高。
技术实现思路
1、为了解决上述技术问题,本专利技术提供一种spring cloud gateway网关动态路由的实现方法及系统,通过业务服务接口进行注释或配置定义就可以实现网关动态路由配置,配置简单高效。
2、本专利技术采用如下技术方案:
3、第一方面,一种spring cloud gateway网关动态路由的实现方法,包括:
4、s101,业务服务启动时,自动扫描接收到的注解或配置动态路由规则,并转换成完整的路由配置规则;基于完整的路由配置规则生成spring cloud gateway网关动态路由配置信息;
5、s102,判断远程配置
6、s103,基于spring cloud gateway网关动态路由配置信息,使用cas锁创建最新路由配置信息,执行s105;
7、s104,获取远程配置中心当前的线上路由配置,将spring cloud gateway网关动态路由配置信息合并到当前的线上路由配置,获得最新路由配置信息,执行s105;
8、s105,将最新路由配置信息发布至远程配置中心。
9、优选的,所述s101中,对于单个接口的业务服务,业务服务接口接收到的为用户注释,实现如下:
10、@gatewaydynamicroute(“注释内容”)
11、对于具有相同路径前缀下的多个接口,通过通配符进行匹配转发的业务服务,业务服务接口接收到的为包括接口地址与超时时间的配置;
12、对于其他设置有指定参数的路由规则,业务服务接口接收到的为完整的路由配置规则。
13、优选的,所述转换成完整的路由配置规则之前,还包括:
14、对注解或配置动态路由规则执行规范性验证、去重和合并操作中的至少一种。
15、优选的,所述s104,具体包括:
16、获取远程配置中心当前的线上路由配置,判断spring cloud gateway网关动态路由配置信息是否已存在于当前的线上路由配置,如果存在,不进行更新;如果不存在,将spring cloud gateway网关动态路由配置信息合并到当前的线上路由配置,获得最新路由配置信息;
17、计算远程配置中心当前的线上路由配置的md5作为当前md5,计算最新路由配置信息的md5作为最新md5,将当前md5与最新md5进行比较,如果一致,取消配置推送;如果不一致,执行s105,使用cas锁更新线上路由配置为最新路由配置信息,当推送失败时启动重试机制进行判断。
18、优选的,所述s103中,使用cas锁创建最新路由配置信息,具体包括:对s101收集到的路由配置信息进行组装、校验和去重,并将其归类,生成超时路由、转发路由、负载均衡路由和权重路由中的至少一种;
19、所述s104中,使用cas锁更新线上路由配置为最新路由配置信息,具体包括:对远程配置中的每一条路由id进行比较,过滤出远程配置与业务服务端的本地配置不一致的路由id,将不一致的路由id追加或覆盖原始的路由配置。
20、优选的,所述s104中,md5的计算方法,具体包括:
21、获取当前路由配置信息,转换为字节数组;
22、使用md5算法对该字节数组进行摘要,生成128位长度的md5值;
23、将md5值转换为16进制字符串作为最终md5值。
24、优选的,所述s105之后,还包括:
25、s106,远程配置中心接收最新路由配置信息,并推送路由配置变更事件到springcloud gateway网关;
26、s107,spring cloud gateway网关接收远程配置中心推送的最新路由配置信息,创建或覆盖本地的路由配置信息,重新加载本地路由表。
27、第二方面,一种spring cloud gateway网关动态路由的实现系统,包括业务服务端;所述业务服务端包括如下模块:
28、动态路由配置信息生成模块,在业务服务启动时,自动扫描接收到的注解或配置动态路由规则,并转换成完整的路由配置规则;基于完整的路由配置规则生成springcloud gateway网关动态路由配置信息;
29、路由配置判断模块,判断远程配置中心是否已存在路由配置,如果不存在,执行路由配置创建模块;如果存在,执行路由配置更新模块;
30、路由配置创建模块,基于spring cloud gateway网关动态路由配置信息,使用cas锁创建最新路由配置信息,并执行推送模块;
31、路由配置更新模块,获取远程配置中心当前的线上路由配置,将spring cloudgateway网关动态路由配置信息合并到当前的线上路由配置,获得最新路由配置信息,执行推送模块;
32、发布模块,将最新路由配置信息发布至远程配置中心。
33、优选的,所述的spring cloud gateway网关动态路由的实现系统,还包括:
34、远程配置中心,用于接收最新路由配置信息,并推送路由配置变更事件到springcloud gateway网关;
35、spring cloud gateway网关,用于接收远程配置中心推送的最新路由配置信息,创建或覆盖本地的路由配置信息,重新加载本地路由表。
36、第三方面,一种计算机设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述的spring cloud gateway网关动态路由的实现方法。
37、本专利技术具有如下有益效果:
38、(1)本专利技术的维护人员只需要根据业务需求按照固定模板通过业务服务接口进行注解或配置动态路由规则,业务服务启动时,业务服务器会自动扫描接收到的注解或配置动态路由规则,并转本文档来自技高网...
【技术保护点】
1.一种Spring Cloud Gateway网关动态路由的实现方法,其特征在于,包括:
2.根据权利要求1所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所述S101中,对于单个接口的业务服务,业务服务接口接收到的为用户注释,实现如下:
3.根据权利要求1所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所述转换成完整的路由配置规则之前,还包括:
4.根据权利要求1所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所述S104,具体包括:
5.根据权利要求4所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所述S103中,使用CAS锁创建最新路由配置信息,具体包括:对S101收集到的路由配置信息进行组装、校验和去重,并将其归类,生成超时路由、转发路由、负载均衡路由和权重路由中的至少一种;
6.根据权利要求4所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所
7.根据权利要求1所述的Spring Cloud Gateway网关动态路由的实现方法,其特征在于,所述S105之后,还包括:
8.一种Spring Cloud Gateway网关动态路由的实现系统,其特征在于,包括业务服务端;所述业务服务端包括如下模块:
9.根据权利要求8所述的Spring Cloud Gateway网关动态路由的实现系统,其特征在于,还包括:
10.一种计算机设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的Spring Cloud Gateway网关动态路由的实现方法。
...【技术特征摘要】
1.一种spring cloud gateway网关动态路由的实现方法,其特征在于,包括:
2.根据权利要求1所述的spring cloud gateway网关动态路由的实现方法,其特征在于,所述s101中,对于单个接口的业务服务,业务服务接口接收到的为用户注释,实现如下:
3.根据权利要求1所述的spring cloud gateway网关动态路由的实现方法,其特征在于,所述转换成完整的路由配置规则之前,还包括:
4.根据权利要求1所述的spring cloud gateway网关动态路由的实现方法,其特征在于,所述s104,具体包括:
5.根据权利要求4所述的spring cloud gateway网关动态路由的实现方法,其特征在于,所述s103中,使用cas锁创建最新路由配置信息,具体包括:对s101收集到的路由配置信息进行组装、校验和去重,并将其归类,生成超时路由、转发路由、负载均衡路由和权重路由中的至少一种;
<...【专利技术属性】
技术研发人员:阮胜,蓝哲,江振华,王远春,李程扬,江智明,
申请(专利权)人:智业软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。