为什么需要网关
网关功能:
- 身份认证和权限校验
- 服务路由、负载均衡
- 请求限流
网关的技术实现
在SpringClould中网关的实现包括两种:
- gateway
- zuul
Zuul是基于Servlet的实现,属于阻塞式变成。而SpringClouldGateway则是基于Spring5中提供的webflux,属于响应式编程的实现,具备更好的性能。
搭建网关服务
搭建步骤
- 创建项目,引入nacos服务和gateway依赖
- 配置application.yml,包括服务基本信息、nacos地址、路由
路由配置包括
- luyouid:路由的唯一标识
- 不由目标(uri):罗友的目标地址,http代表固定地址,lb来表根据服务名称负载均衡
- 路由断言:判断路由的规则
- 路由过滤器: 对请求或者相应做处理
路由断言工厂
路由过滤器GatewayFilter
对请求或相应做出处理
全局过滤器 GlobalFilter
过滤器执行顺序
- order越小,优先级越高
- 当order值一样时,顺序是defaultFilter最先,然后是局部的路由过滤器,最后是全局过滤器
跨域问题处理