Spring Cloud学习【统一网关 Gateway】
在Spring Cloud中,Spring Cloud Gateway是一种提供统一路由方式的网关,它构建于Spring Framework 5,Project Reactor和Spring Boot 2.0之上,使用非阻塞回调式的API。
以下是一个简单的Spring Cloud Gateway的示例配置,它将会路由到一个名为service-provider的服务。
- 在pom.xml中添加依赖:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!-- 如果你需要Gateway的动态路由能力,还需要添加下面的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 配置application.yml:
spring:
cloud:
gateway:
routes:
- id: service_route
uri: http://localhost:8080
predicates:
- Path=/service-provider/**
filters:
- StripPrefix=1
在这个配置中,我们定义了一个路由,该路由将所有到达/service-provider/
的请求都转发到http://localhost:8080
。StripPrefix=1
表示在转发请求之前去掉第一层路径。
- 启动类:
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
启动Gateway服务后,所有到达Gateway服务的/service-provider/的请求都会被转发到http://localhost:8080。这是Spring Cloud Gateway的一个基本使用示例。
评论已关闭