春云网关和尤里卡服务器

Fel*_*ipe 5 spring-boot spring-cloud netflix-eureka netflix-zuul spring-cloud-netflix

我一直试图找到一个与eureka服务器集成的Spring cloud网关的运行示例,以及一些Hystrix示例,但到目前为止我找不到.有什么地方可以找到它吗?我真的希望看到正在使用的Spring云网关,取代我目前的Zuul API服务.

谢谢!

Hel*_*S69 7

在Finchley.M5中,API发生了变化

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder)
{
    GatewayFilter filter = new RewritePathGatewayFilterFactory()
            .apply("/admin/(?<segment>.*)", "/${segment}");

    return builder.routes()
            .route(r -> r.path("/admin/**")
                    .filter(filter)
                    //.uri("http://localhost:3000"))
                    .uri("lb://admin"))  // with load balancer through Eureka
            .build();
}
Run Code Online (Sandbox Code Playgroud)


re6*_*exp 4

您可以将 Spring Cloud Gateway 与 Spring Cloud Config 和 Spring Cloud Eureka 结合使用。这样,网关的配置可能如下所示:

@Bean
public RouteLocator customRouteLocator(
   return Routes.locator()
        .route("admin")
        .predicate(path("/admin/**"))
        .filter(rewritePath("/admin/(?<segment>.*)", "/${segment}"))
        //.uri("http://localhost:3000")
        .uri("lb://admin") // as registered in Eureka
        .build();
}
Run Code Online (Sandbox Code Playgroud)

并且,正如spencergibb所说,添加发现功能:

@Bean
public DiscoveryClientRouteDefinitionLocator discoveryClientRouteLocator(DiscoveryClient discoveryClient) {
    return new DiscoveryClientRouteDefinitionLocator(discoveryClient);
}
Run Code Online (Sandbox Code Playgroud)

这对于 Finchley.M3 来说是实际的。