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

特征

Spring Cloud Gateway功能:

  • 基于Spring Framework 5,Project Reactor和Spring Boot 2.0构建
  • 能够匹配任何请求属性上的路由。
  • 谓词和过滤器特定于路由。
  • Hystrix断路器集成。
  • Spring Cloud DiscoveryClient集成
  • 易于编写的谓词和过滤器
  • 请求速率限制
  • 路径改写

    入门

    ```java

    pom引入依赖

org.springframework.cloud spring-cloud-starter-gateway

代码

@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}”)) .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(); } } ```