当前位置: 首页 > 知识库问答 >
问题:

spring云网关和eureka服务器

冯元徽
2023-03-14

我一直在试图找到一个与eureka服务器集成的spring cloud gateway的运行示例,以及一些Hystrix示例,但到目前为止我还没有找到。有什么地方可以找到它吗?我真的很想看到spring cloud gateway投入使用,取代我目前的Zuul API服务。

谢谢!

共有3个答案

吕鸿轩
2023-03-14

此配置适用于我:

聚甲醛

 <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
夏骏
2023-03-14

您可以将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);
}

这是芬奇利的真实情况。立方米。

姚钊
2023-03-14

在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