5-5 Spring Gateway网关 - y_zoran - 博客园
什么是Spring Cloud Gateway
Spring Cloud Gateway是Spring Cloud生态系统中的网关。类似于ZUUL网关,它可以处理路由请求,执行过滤等操作,可以实现对微服务请求的统一管理,同时还支持WebSocket、HTTP请求转发、负载均衡等功能。
Spring Cloud Gateway的优势
相较于ZUUL1.x,Spring Cloud Gateway优势如下:
- 轻量级,可以在不依赖Servlet容器的情况下运行。
- 基于异步非阻塞模型Reactor构建,性能优越。
- 支持函数式编程模型。
- 支持路由断言、过滤器等,这些过滤器支持全局配置、路由级别配置及特定的URI级别配置,更加灵活。
- 内置了Hytrix熔断器和负载均衡器。
Spring Cloud Gateway的使用
Spring Cloud Gateway的使用方式分为以下几个步骤:
- 引入相关依赖
xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
- 配置路由
yaml
spring:
cloud:
gateway:
routes:
- id: blog
uri: https://www.cnblogs.com/
predicates:
- Path=/blog/**
- id: github
uri: https://github.com/
predicates:
- Path=/github/**
这里配置了两个路由,一个是把以/blog
开头的请求转发到博客园,另一个是把以/github
开头的请求转发到GitHub。
- 编写自定义过滤器
```java
@Component
public class MyFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
System.out.println("请求路径:" + exchange.getRequest().getURI().getPath());
return chain.filter(exchange);
}
@Override
public int getOrder() {
return -1;
}
}
```
这里编写一个简单的过滤器,输出请求路径信息。
- 启动应用并测试
在启动应用后,访问http://localhost:8080/blog
就会转发到博客园,访问http://localhost:8080/github
就会转发到GitHub,并在控制台输出请求路径信息。
总结
Spring Cloud Gateway是Spring Cloud生态系统中的一个强大网关,具有轻量级、灵活、高性能等优势。在使用过程中需要配置路由、过滤器等,可以实现对微服务请求的统一管理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:5-5springgateway网关-y_zoran-博客园 - Python技术站