#spring #microservices #gateway
#spring #микросервисы #шлюз
Вопрос:
я использую spring boot gateway с сервером eureka, но когда я пытаюсь получить доступ к какому-либо API из шлюза, он не выбирает путь маршрута шлюза, он принимает имя службы
@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:
В соответствии с вашей конфигурацией api-шлюз по URI «lb:// BOOKS» получает от сервера eureka путь к вашей службе «http://xxx.xxx.xxx.xxx:8080 /», и ваш сервис, похоже, имеет конечную точку «/books», а не «/book».
Соответственно, вам нужно изменить конечную точку в вашей удаленной службе на «/ book».