FeignClient не работает с именем службы при использовании Consul для Service Discovery - PullRequest
0 голосов
/ 21 января 2020

Я использую Консул для обнаружения услуг, и обе мои службы зарегистрированы в Консуле, как это видно в пользовательском интерфейсе Консула.

Консул Но когда я пытаюсь использовать Feign Client из моего пример службы для доступа к открытой конечной точке, доступной в auth-service Я получаю

"com.netflix.client.ClientException: у балансировщика нагрузки нет доступного сервера для клиента: auth-service".

Auth-Service AuthServiceApplication. java

@EnableDiscoveryClient
@SpringBootApplication
@ComponentScan(basePackages = {"com.learning.*"})
public class AuthServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(AuthServiceApplication.class, args);
    }

}

bootstrap .yaml

spring:
  application:
    name: auth-service 

Example-Service ExampleService. java


@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(
    basePackages = {"com.learning.feign.*"}
)
@ComponentScan(basePackages = {"com.learning.*"})
public class ExampleService {
    public static void main(String[] args) {
        SpringApplication.run(ExampleService.class, args);
    }
}

AuthFeignClient. java

@FeignClient(
    name = "auth-service"
)
public interface AuthFeignClient {
    @GetMapping({"/testData"})
    ResponseEntity<GetPublicKeyResponse> getTestData();
}

Примечание: Feign работает нормально, когда я жестко кодирую URL, который мне не нужен. Когда я пытаюсь использовать конечную точку аутентификации, я не могу.

enter image description here

...