Получение java.net.UnknownHostException: db-service "при вызове сервиса db - PullRequest
0 голосов
/ 11 мая 2018

Сервер

Мой клиент на складе:

@Autowired
    RestTemplate restTemplate;

ResponseEntity<List<String>> quoteResponse =
    restTemplate.exchange("http://db-service/rest/db/" + userName, 
        HttpMethod.GET, 
        null, 
        new ParameterizedTypeReference<List<String>>() {}
    );

Здесь db-сервис - зарегистрированный сервис на сервере eureka.

Это работает, если я ударил прямо как

/* ResponseEntity<List<String>> quoteResponse =
    restTemplate.exchange("http://localhost:8300/rest/db/" + userName,
        HttpMethod.GET, 
        null, 
        new ParameterizedTypeReference<List<String>>() {}
    );*/    

@Configuration

public class Config {

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

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Пожалуйста, попробуйте с помощью spring-cloud-starter-netflix-eureka-client.

и проверьте версию spring-cloud-dependencies вместе с spring-boot-starter-parent версией.

spring-cloud-starter-netflix-eureka-client должна решить проблему

0 голосов
/ 13 мая 2018

Насколько я понимаю, db-сервис - это любой ваш микро-сервис, и вы хотите отправить туда запрос. Вам нужно настроить ленту, потому что RestTemplate не понимает db-service как хост. Вы должны добавить следующий конфиг:

db-service:
  ribbon:
    eureka:
      enabled: false
    listOfServers: localhost:8090
    ServerListRefreshInterval: 15000

и зависимость maven:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>

или вы можете добавить службу Discovery (Eureka) в вашу систему, и вам не нужно описывать listOfSerevers, поскольку лента будет получать всю информацию от службы обнаружения

...