Spring Cloud - Сервер и клиент

Я настраиваю приложение с помощью весенней облачной эврики. Я запускаю свое приложение для обнаружения в порту 8761 и достигаю консоли в "http://localhost:8761".

Итак, я запускаю свое клиентское приложение, и оно появляется на странице «Приложение» консоли eureka.

Первый вопрос: мой клиент использует "server.port = 0" в конфигурации свойств, поэтому порт tomcat запускается случайным образом. Как я могу получить свои услуги в клиенте? Пример: у меня есть запрос на получение в "/ api / stuff". Можно ли получить к нему доступ, не используя случайный порт? Допустим, я не знаю порта!

Второй вопрос: я могу запустить любых клиентов, которые я хочу, они запустятся, предполагая случайный порт и зарегистрируйтесь в обнаружении облачного сервера, я могу увидеть журнал:

«Регистрация приложения FLY-CLIENT в eureka со статусом UP»

Но они не отображаются на странице «Приложение» консоли eureka, почему они не отображаются?

Спасибо!


person CassianoSouza    schedule 07.10.2019    source источник


Ответы (1)


Если вы используете Spring RestTemplate для запроса сервисов, зарегистрированных в Eureka, вам нужно сделать это @LoadBalanced, что-то вроде этого должно сделать попытку:

@LoadBalanced
@Bean
RestTemplate restTemplate() {
    return new RestTemplate();
}

// usage
restTemplate.getForObject("http://your-service-name/api/stuff", StuffResponse.class);

Что касается второго вопроса, я немного сбит с толку, как вы упомянули ранее в вопросе, что ваше приложение отображается на панели управления Eureka. Такое поведение происходит только у «летающего клиента»?

person Marcos Barbero    schedule 12.10.2019