Gateway网关组件

128 阅读2分钟

一、网关简介

网关在架构中的作用:

image.png

浏览器请求后端服务,假设请求订单查看服务,一般我们在Nginx做一层负载均衡,转发到对应的网关,网关配置着各种服务的列表地址信息,根据URL配置规则转发到对应的服务,则在网关只需声明服务的名称以及URL路由规则即可,而服务提供者的列表信息,则放在注册中心去做,这样一来的好处,网关统一做请求路径的转发、拦截资源,所以可做一些权限认证、黑白名单、IP防刷爆等功能,所以网关的作用至关重要。

二、GateWay 核心概念

⼀个请求—>⽹关根据⼀定的条件匹配—匹配成功之后可以将请求转发到指定的服务地址;⽽在这个过程中,我们可以进⾏⼀些⽐较具体的控制(限流、⽇志、⿊⽩名单)

  • 路由(route): ⽹关最基础的部分,也是⽹关⽐较基础的⼯作单元。路由由⼀个ID、⼀个⽬标URL(最终路由到的地址)、⼀系列的断⾔(匹配条件判断)和 Filter 过滤器(精细化控制)组成。如果断⾔为true,则匹配该路由

  • 断⾔(predicates):参考了Java8中的断⾔java.util.function.Predicate,开发⼈员可以匹配Http请求中的所有内容(包括请求头、请求参数等)(类似于nginx中的location匹配⼀样),如果断⾔与请求相匹配则路由

  • 过滤器(filter):⼀个标准的Spring webFilter,使⽤过滤器,可以在请求之前或者之后执⾏业务逻辑。

其中,Predicates断⾔就是我们的匹配条件,⽽Filter就可以理解为⼀个⽆所不能的拦截器,有了这两个元素,结合⽬标URL,就可以实现⼀个具体的路由转发。

三、GateWay 工作流程

四、GateWay 应用

五、GateWay 路由规则详解

六、GateWay 动态路由详解

七、GateWay 过滤器

八、GateWay 高可用