0

Spring Boot, Eureka, Zuul, Ribbon 프레임 워크를 사용하여 프로젝트 아키텍처를 구성했습니다. 그것의 작업 (거의) 미세하지만 때로는 받고 다음과 같은 예외 : com.netflix.client.ClientException :에 의해Spring 부트, eureka, zuul, 리본 프레임 워크에서 ClientException 및 ZuulException을 거의 얻지 못합니다.

  1. 를 일으켰에 의한 서비스 1
  2. :로드 밸런서가 클라이언트에 대해 사용 가능한 서버가 없습니다 : com.netflix.hystrix.exception.HystrixRuntimeException : service1 시간 초과 및 대체 가능 없음.

다음은 내 서비스 구성입니다. 위 예외에 대한 문제를 일으키는 내용을 놓친 경우 알려주십시오.

유레카 서비스 application.properties :

server.port=8070 
spring.application.name=eureka_service 
eureka.client.register-with-eureka=false 
eureka.client.fetch-registry=false 
eureka.instance.hostname=localhost 
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8070/eureka/ 
logging.level.com.netflix.eureka=OFF 
logging.level.com.netflix.discovery=OFF 

zuul 서비스 application.properties :

server.port=8071 
spring.application.name=zuul_service 
zuul.prefix=/api 
zuul.routes.service1.path=/service1/** 
zuul.routes.service1.service-id=service1 
eureka.client.register-with-eureka=true 
eureka.client.fetch-registry=true 
eureka.instance.hostname=localhost 
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8070/eureka/ 
ribbon.eureka.enabled=true 

서비스 1의 application.properties :

server.port=8072 
spring.application.name=service1 
eureka.client.register-with-eureka=true 
eureka.client.fetch-registry=true 
eureka.instance.hostname=localhost 
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:8070/eureka/ 
ribbon.eureka.enabled=true 

해결할 다른 구성을 추가해야하는지 알려주세요. 감사합니다. .

+0

은 시작에 이러한 예외는 쪽으로? 불행한 경우 서비스간에 검색을 위해 메타 데이터를 공유하는 데 120 초가 걸릴 수 있습니다. 또한 Hystrix의 기본값은 1 초이며 스레드 풀은 10입니다. Hystrix 기본값을 유지하는 경우 DOS를 쉽게 사용할 수 있습니다. –

+0

@DarrenForsythe 이러한 예외는 시작시 발생하지 않습니다. 내가 Zuul을 통해 service1 API에 액세스하려고 시도하고 있습니다. http : // localhost : 8071/api/security1/user/***** 어떻게 이러한 예외를 해결할 수 있습니까? – Krish

+0

제가 분명히해야합니다, 얼마나 빨리 응용 프로그램이 올라 오면 API를 치려고합니까? –

답변

0

당신은 예를 들어 설정하여 리본 타임 아웃을 높이기 위해 시도 할 수 있습니다 : 위의 코드는 시간 제한을 해제하여 당신이 시도 할 수 있습니다 작동하지 않습니다

ribbon.ReadTimeout=10000 

경우

hystrix.command.default.execution.timeout.enabled=false 
+0

이것은 hystrix와 관련된 것이 아닙니다. –