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

How to configure zuul and ribbon for load balance and failover without Eureka

Spring 引导版本:1.5.7.Release Spring云版本:Dalston.SR4

我正在用 ribbon 测试 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"
    }

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

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

谢谢。