我一直在试图找到一个与eureka服务器集成的spring cloud gateway的运行示例,以及一些Hystrix示例,但到目前为止我还没有找到。有什么地方可以找到它吗?我真的很想看到spring cloud gateway投入使用,取代我目前的Zuul API服务。
谢谢!
此配置适用于我:
聚甲醛
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</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-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-epoll</artifactId>
<classifier>linux-x86_64</classifier>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
密码
@SpringBootApplication
@Configuration
@EnableDiscoveryClient
public class GatewayApplication {
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route(
r -> r.path("/xxxxxs/**")
.uri("lb://xxxx-service")
)
.route(
r -> r.path("/yyyyyys/**")
.uri("lb://yyyyyy-service")
)
.route(
r -> r.path("/vvvvvs/**")
.uri("lb://vvvvvv-service")
)
.build();
}
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}
属性
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
您可以将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();
}
正如spencergibb所说,添加发现功能:
@Bean
public DiscoveryClientRouteDefinitionLocator discoveryClientRouteLocator(DiscoveryClient discoveryClient) {
return new DiscoveryClientRouteDefinitionLocator(discoveryClient);
}
这是芬奇利的真实情况。立方米。
在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();
}
我使用Spring创建微服务。我使用Eureka进行服务发现,使用Zuul进行路由。现在我想切换到Spring Cloud Gateway(因为它的非阻塞特性),但是我没有找到自动路由到每个Eureka服务的方法。 例如,如果一个服务'eureka-client'注册到了Eureka,那么Zuul本身就为这个服务提供了类似于localhost:8762/eureka-client的路径。使用Spr
iam使用spring boot gateway与eureka服务器,但当我试图从gateway访问某个api时,它不使用gateway路由的路径,而是使用服务名 但如果我将“book”替换为“books”(服务名),它就会起作用
Java 14 版本: 版本: 现在我想将安全性集成到我的网关和所有下游微服务中。最终,我决定使用Firebase作为身份提供商(IDP)。我的Angular应用程序将从Firebase获得JWT令牌,并在每个请求中发送到云网关。因此,网关将开始只充当资源服务器,仅此而已。 下面是我如何尝试的。设置和同时充当资源服务器。在这里很好地解释了Spring安全文档。 下面是我的配置 和applicati
spring webclient无法从eureka服务器的服务实例名称中检索实际主机,出现以下异常: Spring启动版本:2.2.3。BUILD-SNAPSHOT