close

Spring Cloud Gateway

该项目提供了一个用于在Spring WebFlux之上构建API网关的库。Spring Cloud Gateway旨在提供一种简单而有效的方法来路由到API,并为它们提供跨领域关注,例如:安全性,监视/指标和弹性。

特征

Spring Cloud Gateway功能:

  • 建立在Spring Framework 5,Project Reactor和Spring Boot 2.0之上

  • 能够匹配任何请求属性上的路由。

  • 谓词和过滤器特定于路由。

  • 断路器集成。

  • Spring Cloud DiscoveryClient集成

  • 易于编写的谓词和过滤器

  • 请求速率限制

  • 路径改写

入门

@SpringBootApplication
public class DemogatewayApplication {
	@Bean
	public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
		return builder.routes()
			.route("path_route", r -> r.path("/get")
				.uri("http://httpbin.org"))
			.route("host_route", r -> r.host("*.myhost.org")
				.uri("http://httpbin.org"))
			.route("rewrite_route", r -> r.host("*.rewrite.org")
				.filters(f -> f.rewritePath("/foo/(?<segment>.*)", "/${segment}"))
				.uri("http://httpbin.org"))
			.route("hystrix_route", r -> r.host("*.hystrix.org")
				.filters(f -> f.hystrix(c -> c.setName("slowcmd")))
				.uri("http://httpbin.org"))
			.route("hystrix_fallback_route", r -> r.host("*.hystrixfallback.org")
				.filters(f -> f.hystrix(c -> c.setName("slowcmd").setFallbackUri("forward:/hystrixfallback")))
				.uri("http://httpbin.org"))
			.route("limit_route", r -> r
				.host("*.limited.org").and().path("/anything/**")
				.filters(f -> f.requestRateLimiter(c -> c.setRateLimiter(redisRateLimiter())))
				.uri("http://httpbin.org"))
			.build();
	}
}

要运行自己的网关,请使用spring-cloud-starter-gateway依赖项。

SpringInitializr

快速启动您的项目

使用 Spring Initializr引导您的应用程序 。

文献资料

每个Spring项目都有自己的项目。它详细说明了如何使用项目功能以及使用它们可以实现的功能。
3.0.2 当前 GA 参考文件
3.0.3快照 快照 参考文件
2.2.9.BUILD-SNAPSHOT 快照 参考文件
2.2.8.RELEASE GA 参考文件

导游

该指南旨在在1530分钟内完成,提供了快速,动手的指导,用于为使用Spring的任何开发任务构建入门应用程序