作用:请求转发,负载均衡,权限控制,跨域
用来代替Zuul
简要概述
先通过Gateway Handler Mapping做匹配,然后根据Gateway Web Handler处理匹配
然后要经过很多过滤器
简单使用
依赖
这里使用nacos作为服务注册中心
<!--服务注册--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- gateway依赖,该依赖中已经引入了web相关依赖了 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
简单使用
spring:
application:
name: service-gateway
cloud:
# 网关服务注册到nacos中
nacos:
discovery:
server-addr: 127.0.0.1:8848
# 开启gateway服务发现路由
gateway:
discovery:
locator:
enabled: true
route-refix: /api
# 路由匹配规则
routes:
# 设置路由id
- id: service-edu
# 设置路由uri lb://nacos中注册的服务名
uri: lb://${spring.cloud.gateway.routes[0].id}
# 断言 路由规则 如果有多个可以加逗号分割
predicates:
- Path=${spring.cloud.gateway.route-refix}/eduservice/**
filters:
# 路由过滤在网关服务访问/api/eduservice相当于访问代理服务的/eduservice
- StripPrefix=1
gateway过滤器有第二代网关的新写法
