Gateway网关-网关作用介绍
网关的技术实现
在SpringCloud中网关的实现包括两种:
gateway
zuul
zuul是基于Servlet的实现,属于阻塞式编程,而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于应式编程的实现,具备更好的性能
网关作用:
对用户请求做身份认证,权限校验
将用户请求路由搭配微服务,并实现负载均衡
对用户请求做限流
Gateway网关-快速入门
1.创建信的module,引入SpringCloudGateway的依赖和nacos的服务发现依赖:
<dependencies>
<!-- nacos服务注册依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 网关依赖gateway依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
</dependencies>
2.编写路由配置nacos地址
server: port: 10010 spring: application: name: gateway cloud: nacos: server-addr: localhost:8848 # nacos地址 gateway: routes: - id: user-server #路由表示 必须唯一 uri: lb://userserver # 路径的目标地址 predicates: # 路由断言,判断请求是否符合规则 - Path=/user/** #路由断言。判断路由是否是以/user开头,如果是则复合规则 - id: order-server uri: lb://orderserver predicates: - Path=/order/**
搭建网关服务

Gateway网关-路由断言工厂
网关路由可以配置的内容包括:
路由id:路由唯一标示
uri:路由目的地,支持lb和http两种
predicates:路由断言,判断请求是否符合要求,符合则转发路由目的地
filters:路由过滤器,处理请求响应
路由断言工厂Route Predicate Factory
我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的
咧如:Path=/user/**是按照路径匹配,这个规则是由

像这样的断言工厂在SoringCloudGateway还有十几个
路由断言工厂Route Predicate Factory
Spring提供11种基本的Predicate工厂:

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

过滤器工厂 GatewayFilterFactory
Spring提供了31中不同的路由过滤器工厂,咧如:

默认过滤器
如果要对所有的路由都生效,则可以将过滤器工厂写到default下
server: port: 10010 spring: application: name: gateway cloud: nacos: server-addr: localhost:8848 # nacos地址 gateway: routes: - id: user-server #路由表示 必须唯一 uri: lb://userserver # 路径的目标地址 predicates: # 路由断言,判断请求是否符合规则 - Path=/user/** #路由言。判断路由是否是以/user开头,如果是则复合规则 - id: order-server uri: lb://orderserver predicates: - Path=/order/** default-filters: # 全局过滤器 - AddRequestHeader=Truth,Itcast is freaking awesome! #添加请求头
总结:
过滤器的作用是什么?
对路由的请求或响应做加工处理,比如添加请求头
defaultFilters的作用是什么?
对所有路由都生效的过滤器

浙公网安备 33010602011771号