(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号 CN 112929210 A
(43)申请公布日 2021.06.08
(21)申请号 CN202110099777.8
(22)申请日 2021.01.25
(71)申请人 城云科技(中国)有限公司
    地址 310052 浙江省杭州市滨江区长河街道江南大道588号恒鑫大厦主楼17层、18层
(72)发明人 郁强 毛云青 梁贤 欧阳刚 程立勇
(74)专利代理机构 32260 无锡市汇诚永信专利代理事务所(普通合伙)
    代理人 李珍珍
(51)Int.CI
      H04L12/24(20060101)
      H04L12/751(20130101)
      H04L29/08(20060101)
      G06F9/445(20180101)
                                                                  权利要求说明书 说明书 幅图
(54)发明名称
      在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用
(57)摘要
      本发明提供一种在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用,在WebFlux框架搭建的网关路由利用设计的插件链和规则选择器实现插件,具体应用方法包括:获取需要处理的http请求;基于插件链上的插件依次对所述http请求进行处理,其中所述插件通过封装所述网关路由的功能规则得到,所述插件依顺序配置得到所述插件链,在利用网关路由能以固定的线程来处理高并发的高性能的同时,实现动态配置路由,对其他业务系统接入表现良好的效果。
法律状态
法律状态公告日
法律状态信息
法律状态
2021-06-08
公开
公开
2021-06-25
实质审查的生效
实质审查的生效
2023-04-18
授权
发明专利权授予
权 利 要 求 说 明 书
1.一种在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,包括以下步骤:
获取需要处理的http请求;
基于插件链上的插件依次对所述http请求进行处理,其中所述插件通过封装所述网关路由的功能规则得到,所述插件依顺序配置得到所述插件链。
2.根据权利要求1所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,每个所述插件被配置包括至少一规则选择器的选择器列表,所述规则选择器被配置至少一路由规则。
3.根据权利要求2所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,所述“基于插件链上的插件依次对所述http请求进行处理”包括:调用所述插件的execute()方法,判断所述插件是否已经启用,若启用则判断对应所述插件的规则选择器是否匹配所述http请求,若匹配则执行所述插件的业务,若不匹配则将所述http请求传递给所述插件链的其他插件。
4.根据权利要求3所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,所述“判断对应所述插件的规则选择器是否匹配所述http请求”包括:所述插件从对应的选择器列表中选择一个规则选择器,根据所述规则选择器中配置的路由规则从所述http请求中获取相应参数进行匹配,若匹配不成功则选择所述选择器列表中其外的规则选择器进行匹配,直到某一个规则选择器匹配成功为止。
5.根据权利要求2所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,所述规则选择器内的所
述路由规则为:获取http请求的url进行等于逻辑判断或正则匹配,或,获取http请求中的指定参数,对参数值进行大于、小于、等于逻辑判断或正则匹配。
6.根据权利要求2所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,所述规则选择器内配置的路由规则和路由规则之间支持AND、OR逻辑连接。
7.根据权利要求1所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,单一插件仅针对单一处理所述http请求的功能。
8.根据权利要求1所述的在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,所述WebFlux框架搭建的网关路由使用Spring Boot搭建的微服务,并引入WebFlux框架。
9.一种在WebFlux框架搭建的网关路由应用插件的系统,其特征在于,包括:
请求获取单元,用于获取需要处理的http请求;
请求处理单元:基于插件链上的插件依次对所述http请求进行处理,其中所述插件通过封装所述网关路由的功能规则得到,所述插件依顺序配置得到所述插件链。
10.一种WebFlux框架搭建的网关路由,其特征在于,使用Spring Boot搭建的微服务并引入WebFlux框架,应用权利要求1到7任一所述的在WebFlux框架搭建的网关路由应用插件的方法。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,在所述存储器中存储有计算机存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行根据权利要求1-8中任一所述的在WebFlux框架搭建的网关路由应用插件的方法。
说  明  书
<p>技术领域
本发明涉及计算机网络通讯领域,特别涉及一种在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用。
背景技术
网关,又称网间连接器、协议转换器,简单地理解就是一个网络连接到另一个网络的“关口”,实质上是一个网络通向其他网络的IP地址,网关的IP地址是具有路由功能的设备的IP地址,对应的,网关的核心功能是根据路由规则将请求分发到相应的后端集。路由发生在网络层,其是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程,其可根据请求的host,url等规则将数据包转换到相应的后端集。
SpringWebFlux(以下简称WebFlux)是SpringFramework5.0中引入的新的响应式web框架,其是一个异步非阻塞式的Web框架,能够充分利用多核CPU的硬件资源去处理大量的并发请求,且可填补Spring在响应式编程上的空白,其针对通用的通信框架(比如Netty,Redis)都提供了响应式访问的开发包。现有技术一些使用WebFlux的网关,比如Spring-Cloud-Gateway,其利用WebFlux中的reactor-netty响应式编程组件,底层使用了Netty通讯框架,进而搭建一个高性能网关的效果。
然而以WebFulx框架搭建的网关,比如Spring-Cloud-Gateway,旨在为微服务架构提供一种简单有效的统一的API路由管理方式,存在无法进行动态路由配置、以及调用时依赖需要在Spring-Cloud的缺陷,导致Spring-Cloud-Gateway对其他业务系统的接入表现地十分不友好,很难利用Spring-Cloud-Gateway制作公共服务。
发明内容
本发明的目的在于提供一种在WebFlux框架搭建的网关路由应用插件的方法、系统及其应用,其在在利用网关路由能以固定的线程来处理高并发的高性能的同时,实现动态配置路由,对其他业务系统接入表现良好的效果。
为实现以上目的,本技术方案提供一种在WebFlux框架搭建的网关路由应用插件的方法,其特征在于,包括以下步骤:
获取需要处理的http请求;
基于插件链上的插件依次对所述http请求进行处理,其中所述插件通过封装所述网关路由的功能规则得到,所述插件依顺序配置得到所述插件链。
第二方面,提供一种在WebFlux框架搭建的网关路由应用插件的系统,包括:
正则匹配多个
请求获取单元,用于获取需要处理的http请求;
请求处理单元:基于插件链上的插件依次对所述http请求进行处理,其中所述插件通过封装所述网关路由的功能规则得到,所述插件依顺序配置得到所述插件链。
第三方面,提供一种WebFlux框架搭建的网关路由,使用SpringBoot搭建的微服务并引入WebFlux框架,应用其上在WebFlux框架搭建的网关路由应用插件的方法。
一种电子设备,处理器;以及存储器,在所述存储器中存储有计算机存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行在WebFlux框架搭建的网关路由应用插件的方法。
相较现有技术,本技术方案具有以下特点和有益效果:通过引入Webflux、Netty等技术实现了网关的核心功能,在保证了网关的高性能的同时将网关的核心功能设计成插件式,开发人员只需要实现一个接口或者抽象类,再基于规则选择器的设计,即可实现非常细粒度的路由控制,且路由控制方式非常灵活易扩展,在一定程度上降低了开发人员的研发成本和维护成本。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。