gateway

简介: gateway

网关功能:

 身份认证和权限校验 (你是谁、有什么权限,能不能访问)


 服务路由、负载均衡 (引导访问具体的微服务、负载平衡)


请求限流(允许10个用户,来了100个访问,不行,得限流)


Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。


网关的作用


对用户请求做身份认证、权限校验


将用户请求路由到微服务,并实现负载均衡


对用户请求做限流


只要符合它的断言,它就带你去相应的服务


网关搭建步骤:


1.创建项目,引入nacos服务发现和geteway依赖


2.配置application.yml,包括服务基本信息、nacos地址、路由

路由配置包括:


1、路由id:路由的唯一表示


2、路由目标(url):路由的目标地址,http地址代表固定地址,lb代表根据服务名负载均衡


3、路由断言:判断路由的规则


4、路由过滤器:对请求或响应做处理


看你访问请求的地址是否符合断言规则,符合的话则转发到路由目的地,不符合的则拒绝访问。


断言工厂有很多种规则,比如限制地域+时间,韩国的2030年前的不能访问。


Gateway是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理


用户访问微服务需要经过路由和一层层的过滤器,同样微服务响应给用户的信息也需要通过层层过滤器和路由。


过滤器的作用是什么?


1)对路由的请求或响应做加工处理,比如添加请求头


2)配置在路由下的过滤器只对当前路由的请求生效


default-filtersde作用是什么?


对所有路由都生效的过滤器


全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用意义


区别在于GatewayFiter通过配置定义,处理逻辑是固定的。而GlobalFilter的逻辑需要自己写代码实现


定义方式是实现GlobalFilter接口


定义全局过滤器,拦截并判断用户身份


需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:


参数中是否有authorization


authorization参数值是否为admin


如果同时满足则放行,否则拦截


全局过滤器的作用是什么?


对所有路由都生效的过滤器,并且可以自定义处理逻辑


它本身的过滤器工厂里面的东西是写死的,而全局过滤器的逻辑是自己写的。


实现全局过滤器的步骤?


1.实现GlobalFilter接口


2.添加@Order注解或实现Ordered接口


3.编写处理逻辑


过滤器执行顺序


请求进入网关会碰到三类过滤器:当前路由的过滤器、DefaultFilter、GolobalFiter


请求路由后,会将当前路由过滤器和DefaultFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器


每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。


GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定


路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。


路由过滤器、defaultFilter、全局过滤器的执行顺序?


1)order值越小,优先级越高


2)当order值一样时,顺序是defaultFilter最先,然后是局部的路由过滤器,最后是全局过滤器。


你有很多个过滤器,怎么确认顺序呢,就是根据order值的大小,越小越先。


跨域问题处理


跨域:域名不一致就是跨域,主要包括:


域名相同,端口不同:localhost:8080和localhost8081


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


解决方案:CORS


CORS跨域要配置的参数包括哪几个?

允许哪些域名跨域?


允许哪些请求头?


允许哪些请求方式?


是否允许使用cookie?


有效期是多久?


网关的作用是识别身份,给予有权限的用户访问


网关还有过滤器工厂,可以根据地域时间来拦截


全局过滤器,自定义逻辑,过滤器链,执行顺序由order值大小决定


网关还可以设置允许某些域名和访问方式,cookie、头信息、以及跨域检测的有效期



相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
9月前
|
Prometheus 负载均衡 监控
详解Gateway
详解Gateway
567 0
|
5天前
|
Java API 网络架构
Gateway的配置与使用
通过以上步骤,你可以配置和使用Spring Cloud Gateway来实现微服务架构中的请求路由和过滤功能。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
18 5
|
7月前
|
Java API Spring
springcloud gateway 网关
springcloud gateway 网关
61 0
|
6月前
gateway简单配置
gateway简单配置
45 0
|
8月前
|
监控 Java API
SpringCloud Gateway网关
SpringCloud Gateway网关
95 0
|
9月前
|
负载均衡 Java Nacos
Gateway 网关服务
Gateway 网关服务
110 0
|
12月前
|
监控 安全 Java
springcloud之服务网关gateway
springcloud之服务网关gateway
|
负载均衡 前端开发 Java
SpringCloud 之 Gateway 服务网关 04
Gateway网关是我们服务的守门神,所有微服务的统一入口。
|
负载均衡 Java API
Gateway服务网关
Gateway服务网关
1056 0
|
监控 前端开发 安全
Gateway服务网关(一)
Gateway服务网关
163 0