文章目录
- 1 GateWay简介
- 2 搭建网关服务
-
- 2.1 创建新的module,引入依赖
- 2.2 编写路由配置及nacos地址
- 3 路由断言工厂
- 4 路由过滤器GatewayFilter
- 5 过滤器执行顺序
- 6 跨域问题
1 GateWay简介
- 网关功能:身份认证和权限校验、服务路由、负载均衡、请求限流。
- 技术实现:是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。
2 搭建网关服务
2.1 创建新的module,引入依赖
<!-- SpringCloud Gateway --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!-- SpringCloud Alibaba Nacos --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
2.2 编写路由配置及nacos地址
# Tomcat
server:port: 8080
# Spring
spring: application:# 应用名称name: gatewayprofiles:# 环境配置active: devcloud:gateway:routes: #网关路由配置- id: userservice #路由id,自定义,必须唯一url: lb://userservice # 路由的目标地址 lb就是负载均衡,后面跟服务名称predicates: #路由断言,也就是判断请求是否符合路由规则的条件- Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848config:# 配置中心地址server-addr: 127.0.0.1:8848# 配置文件格式file-extension: yml
3 路由断言工厂
PredicatesFactory
官网参考文档地址:
https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-request-predicates-factories
4 路由过滤器GatewayFilter
GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理。
官网地址:
https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gatewayfilter-factories
5 过滤器执行顺序
- order值越小,优先级越高
- 当order值一样时,顺序是: defaultFilter>路由过滤器>GlobalFilter
6 跨域问题
浏览器
禁止请求的发起者与服务端发生跨域ajax请求
,请求被浏览器拦截
的问题。
网关处理跨域采用的同样是CORS方案