Feign Client не может связаться с методом внутри сервера eureka - PullRequest
0 голосов
/ 01 апреля 2020

У меня настроен сервер eureka, и внутри этого сервера eureka я написал api rest. Теперь у меня есть клиентская служба eureka, и я пытаюсь вызвать один из методов обслуживания eureka, используя функцию feign from client service. Но я получаю сообщение об ошибке «У балансировщика нагрузки нет доступного сервера для клиента: eureka-service».

Но если я вызываю api из клиентского сервиса в другой клиентский сервис, используя feign, то он дает успешный результат. Просто не могу вызвать API из сервиса eureka.

eureka-service - это имя приложения моего сервера eureka.

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
 public static void main(String[] args) {
    SpringApplication.run(EurekaApplication.class, args);
 }
}

@RestController
@RequestMapping("test")
public class TestController {
 @GetMapping
 public String test(){
    return "test success";
 }
}

bootstrap .yml сервиса eureka

eureka:
 client:
  registerWithEureka: false
  fetchRegistry: false 
  eureka-server-read-timeout-seconds: 60
  eureka-server-connect-timeout-seconds: 60
  serviceUrl:
   defaultZone: http://localhost:8763/eureka/ 
 dashboard:
  enabled: true
spring:
 application:
  name: eureka-service

А клиентская служба:

@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
public class ClientApplication {

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



@FeignClient("eureka-service")
public interface TestFeign {
  @GetMapping("test")
  String test();
}

bootstrap .yml клиентской службы

eureka:
 client:
  registerWithEureka: true 
  fetchRegistry: true
  eureka-server-read-timeout-seconds: 60
  eureka-server-connect-timeout-seconds: 60
  serviceUrl:
   defaultZone: http://localhost:8763/eureka/ 
spring:
 application:
  name: client-service
feign:
 hystrix:
  enabled: true

ОШИБКА журнала: Servlet.service () для сервлета [dispatcherServlet] в контексте с path [] сгенерировал исключение [Ошибка обработки запроса; Вложенное исключение - com.netflix.hystrix.exception.HystrixRuntimeException: TestFeign # test () не выполнен и откат недоступен.] с root причиной com.netflix.client.ClientException: у балансировщика нагрузки нет доступного сервера для клиента: eureka- сервис.

Как мы можем решить эту проблему. Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 01 апреля 2020

Вам нужно отсканировать свои интерфейсы, которые объявляют, что они FeignClients с аннотацией @EnableFeignClients в вашем основном классе, и добавить свойство feign.hystrix.enabled=true.

...