统一网关Gateway
①:为什么需要网关
②:搭建网关服务
网关作用流程
③:路由断言工厂
关于断言工厂为什么不是过滤器
断言工厂是用来匹配请求的,比方说有很多微服务交由网关管理。 每个微服务都有不同的断言 工厂配置,有的微服务必须几点之前、有的微服务必须什么IP 当前端发来URL,请求的时候,URL会跟配置中比较 满足断言工厂配置条件的才能找到对应的服务并响应
如果你访问localhost:88/hello?url=baidu
它会自动跳转到,www.baidu.com/hello
④:路由过滤器GatewayFilter
⑤:全局过滤器GlobalFilter
全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。⑥:过滤器执行顺序
请求进入网关会碰到三类过滤器: 当前路由的过滤器、DefaultFilter、GlobalFilter请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链 (集合)中,排序后依次执行每个过滤器
1、 每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前
2、 GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定
3、 路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增
4、 当过滤器的order值一样时,会按照 defaultFilter > 路由过滤器>GlobalFilter的顺序执行
⑦:跨域问题处理
**跨域:**域名不一致就是跨域,主要包括:
- 域名不同: www.taobao.com 、www.taobao.org
- 域名相同: 端口不同: localhost:8080、 localhost:8081
- 跨域问题: 浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题
- 解决方案: CORS