如何在没有Eureka的情况下配置zuul和功能区以实现负载平衡和故障转移

时间:2017-11-07 08:15:33

标签: spring netflix-zuul spring-cloud-netflix netflix-ribbon

Spring boot版本:1.5.7。发布 Spring Cloud版本:Dalston.SR4

我用功能区测试zuul服务器,我不想要Eureka

我在zuul服务器中添加了以下配置。

    #application.properties
    spring.application.name= gateway
    server.port=8089

    eureka.client.enabled=false
    ribbon.eureka.enabled=false

    zuul.ignored-services= "*"
    zuul.routes.sample-service.path=/samples/**
    zuul.routes.sample-service.serviceId=sample-service
    zuul.routes.sample-service.stripPrefix=false
    zuul.routes.sample-service.retryable=true
    zuul.routes.retryable=true
    zuul.retryable=true

    sample-service.ribbon.listOfServers= localhost:8081,localhost:8085
    sample-service.ribbon.eureka.enabled= false
    sample-service.ribbon.ServerListRefreshInterval= 100
    sample-service.ribbon.retryableStatusCodes= 500
    sample-service.ribbon.MaxAutoRetries= 0
    sample-service.ribbon.MaxAutoRetriesNextServer= 1
    sample-service.ribbon.OkToRetryOnAllOperations= true
    sample-service.ribbon.ReadTimeout= 10000
    sample-service.ribbon.ConnectTimeout= 10000
    sample-service.ribbon.EnablePrimeConnections= true
    zuul.ribbon-isolation-strategy=thread

    hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds= 30000

问题

正常的zuul服务器运行良好,但其中一台服务器正在关闭 响应返回如下消息。 在这种情况下,调试点是什么?

    {
        "timestamp": 1510040524144,
        "status": 500,
        "error": "Internal Server Error",
        "exception": "com.netflix.zuul.exception.ZuulException",
        "message": "TIMEOUT"
    }

1 个答案:

答案 0 :(得分:0)

我在application.properties中添加了以下代码,并且它正在运行。

hystrix.command.sample-service.execution.isolation.thread.timeoutInMilliseconds= 60000

感谢。