我最近完成了 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/**
我必须创建一个配置文件来管理网关路由。但我仍然无法使用服务注册表的服务名称来重定向即将到来的请求。 这是我的代码,解决了我一半的问题:
@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"), 我想使用我的服务名称(测验服务、问题服务)