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

带有eureka服务器的Spring Boot网关

郝修为
2023-03-14

iam使用spring boot gateway与eureka服务器,但当我试图从gateway访问某个api时,它不使用gateway路由的路径,而是使用服务名

@Configuration
public class SpringCloudConfig {

        @Bean
        public RouteLocator gatewayRoutes(RouteLocatorBuilder builder) {
            return builder.routes()
                    
                //  .route("book", r -> r.path("/book/**").uri("lb://BOOKS"))
    
                    .route("bookstore", r -> r.path("/booksstore/**").uri("lb://BOOKSTORE"))
                     .route("book",
                                r -> r.path("/book/**")
                              
                                        .uri("lb://BOOKS"))
                
                    .build();
        }
    
    }

但如果我将“book”替换为“books”(服务名),它就会起作用

共有1个答案

金阳曜
2023-03-14

根据您的配置,api-gateway by URI“lb://books”从eureka服务器获取到您的服务“http://mission..mission..mission..mission.8080/”的路径,您的服务似乎有一个endpoint“/books”,而不是“/book”。

因此,您需要将远程服务中的endpoint更改为“/book”。

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

  • 如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot

  • 我一个多星期都找不到解决办法。在dev服务器上一切正常,但在生产环境中则不然。我没有力量,我呼吁各位同事:) 我在Socket上使用Laravel echo服务器。io使用CloudFlare。尝试连接时,我收到一个错误:WebSocketError:收到意外状态代码(502坏网关) Ubuntu 16.04。7 LTS,Laravel Echo服务器:1.6。1,NodeJs:v12。19 拉威

  • pom.xml 主应用程序类 Application.Properties eureka客户端设置 pom.xml Application.Properties 我在eureka-server仪表板(http://localhost:8761)中没有看到向Eureka server注册的micro-service-currency-exchange-service 为什么eureka客户端没有注册

  • 我有一个简单的spring引导的微服务(用户服务)和一个spring引导的网关服务(网关-服务器),使用Zuul设置到Eureka服务器(发现服务)注册。向用户-服务发送请求直接起作用,并且所有服务都成功地注册到eureka服务器。当我向网关服务器发送请求时,我会得到一个转发错误,原因是“com.netflix.client.clientException:Load balancer没有用于客户端