шлюз весенней загрузки с сервером eureka

#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».