Spring Cloud Geteway基于Spring5 + Spring Boot2 + Project Reactor等技术开发的网关。
为了提高网关性能,Spring Cloud Geteway是基于WebFlux框架实现的,而WebFlux框架底层则使用了高性能的Reactor模式通信框架Netty
三大核心概念
路由 Route
断言 Predicate
过滤 Filter
关键点1: pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
关键点2: application.yml
spring:
application:
name: gateway-main
cloud:
gateway:
discovery:
locator:
enabled: true # 开启从注册中心动态创建路由的功能,利用微服务名进行路由
routes:
- id: payment_fast #路由id,要求唯一
# uri: http://localhost:8001 # 匹配后提供服务的路由地址
uri: lb://TCLOUD-PAYMENT-PROVIDER # 匹配后提供服务的路由地址
predicates:
- Path=/payment/get/** # 断言,路径匹配的进行路由
- id: payment_slow #路由id,要求唯一
#uri: http://localhost:8001 # 匹配后提供服务的路由地址
uri: lb://TCLOUD-PAYMENT-PROVIDER # 匹配后提供服务的路由地址
predicates:
- Path=/payment/out/** # 断言,路径匹配的进行路由
#- Cookie=username,zzyy
#- Query=username,zzyy
#- Method=GET