是否已弃用 application.properties 用于配置微服务网关?

问题描述 投票:0回答:1

我最近完成了 3 个月前的教程,但建议的 API 网关配置并未按预期工作。我在尝试访问 /quiz-services 时遇到 404 错误。有人可以指导我吗?

这是我在 API-GATEWAY 应用程序中使用的配置:

server.port=8083
spring.application.name=API-GATEWAY
logging.level.org.springframework=debug

spring.cloud.gateway.routes[0].id=QUIZ-SERVICE
spring.cloud.gateway.routes[0].uri=lb://QUIZ-SERVICE
spring.cloud.gateway.routes[0].predicates[0]=Path=/quiz/**

spring.cloud.gateway.routes[1].id=QUESTION-SERVICE
spring.cloud.gateway.routes[1].uri=lb://QUESTION-SERVICE
spring.cloud.gateway.routes[1].predicates[0]=Path=/question/**

spring-boot microservices spring-cloud-gateway spring-cloud-config
1个回答
0
投票

我必须创建一个配置文件来管理网关路由。但我仍然无法使用服务注册表的服务名称来重定向即将到来的请求。 这是我的代码,解决了我一半的问题:

@Configuration
public class Routes {

  @Bean
  public RouterFunction<ServerResponse> quizServiceRoute() {
    return GatewayRouterFunctions
      .route("quiz-services")
      .route(
        RequestPredicates.path("/quiz/**"),
        HandlerFunctions.http("http://localhost:8081")
      )
      .build();
  }

  @Bean
  public RouterFunction<ServerResponse> questionServiceRoute() {
    return GatewayRouterFunctions
      .route("question-services")
      .route(
        RequestPredicates.path("/question/**"),
        HandlerFunctions.http("http://localhost:8082")
      )
      .build();
  }
}

而不是 HandlerFunctions.http("http://localhost:8082"), 我想使用我的服务名称(测验服务、问题服务)

© www.soinside.com 2019 - 2024. All rights reserved.