该项目为在SpringWebFlux之上构建API网关提供了一个库。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供交叉关注点,如:安全性、监控/度量和弹性。
Spring Cloud Gateway功能:
下面来一个个实现上面的功能。开一个新项目,添加依赖 resilience4j stub-runner gateway.
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-gateway</artifactId>
- </dependency>
-
-
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
- <scope>test</scope>
- </dependency>
牛刀小试:添加下面的代码到启动类。主要是测试下是否能拦截到请求。
- @Bean
- public RouteLocator myRoutes(RouteLocatorBuilder builder) {
- return builder.routes()
- .route(p -> p
- .path("/get")
- .filters(f -> f.addRequestHeader("Hello", "World"))
- .uri("http://httpbin.org:80"))
- .build();
- }
项目默认是跑到8080端口。用下面的命令可以看到结果:
接下来尝试下过滤器。
收藏 官方说明文档:nullhttps://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-starter