0

我已經使用Spring Boot,Eureka,Zuul,Ribbon框架配置了我的項目體系結構。 其工作正常,但有時(很少)得到以下情況除外:在Spring引導,eureka,zuul,ribbon框架中很少獲得ClientException和ZuulException

  1. 造成的:com.netflix.client.ClientException:負載均衡器沒有爲客戶端可用的服務器:服務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有關。 –