网关Gateway

一、网关第一步:断言->断言工厂

路由断言【Route Predicate】、断言工厂【Route Predicate Factory】

什么是路由断言?

判断一个路由断言是否符合条件,符合则转发到路由的目的地

我们在配置文件中写的断言规则只是字符串,这些字符串会被断言工厂(Route Predicate Factory)读取并处理,转换为路由判断的条件

当请求到来的时候,首先交给路由断言工厂进行处理,如果命中断言工厂,则执行下一步,否则返回错误信息

什么是路由断言工厂?

读取用户配置的断言规则,并把它解析成判断条件,并作出判断

像这样的断言工厂在SpringCloudGateway有十几个,每一个都有自己的判断条件
image
用的最多的断言工厂是Path,根据路径进行判断
image
image
这个的含义是对请求路径做判断,只要路径的开头是这个,就符合条件
他会根据配置文件中的路由规则挨边找,直到找到符合(放行)的或者没有符合的为止(报错404),在做相关的判断!


二、路由中的过滤器GatewayFilter

GatewayFilter是网关中提供的一种过滤器,可以对网关的请求以及微服务的响应做处理:
image
image
具体使用哪个路由过滤工厂,到时候可以查看微服务的源码查找使用方法!配置案例如下
image
配置默认路由过滤器:对所有请求都生效!
image

全局过滤器GlobalFilter:作用和GatewayFilter的作用一样,处理一切进入网关的请求和微服务响应,但是它需要自己写代码实现,不像GatewayFilter一样直接配置就行,优点在于:处理逻辑可以根据需求调整

image

ps:交给下一个过滤器处理是一个过滤链

image


三、过滤器的执行顺序

image
image

四、网关的跨域处理

跨域情况:浏览器禁止请求的发起者与服务端发生的ajax请求,请求被浏览器拦截的问题

image
image
image

posted @ 2024-03-20 23:32  仙女无可奈何  阅读(5)  评论(0编辑  收藏  举报