如何配置Zuul一个微服务的多个实例

时间:2018-12-24 19:57:18

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

我正在一个春季云项目中工作,我有一个eruka服务,zull代理和一个名为errors-service的微服务(zull代理和我的缺陷-服务是eurka​​的客户),并且一切正常。 在我的zull代理中,我具有以下配置:

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone:  http://localhost:8370/eureka/
  instance:
      hostname: localhost

    zuul:
      prefix: /api
      routes:
        defects-service:
         path: /defects-service/**
         url: http://localhost:8300

我的问题是,现在我在不同的端口8301和8302(已在eruka服务中成功注册)上启动我的缺陷服务的两个实例,但是我不知道如何配置我的zull代理来进行负载平衡并开始重定向请求到我在端口(8300,8301,8302)上的三个实例。 请注意,zull仅知道http://localhost:8300

上的实例

任何人都可以帮助我解决此问题。

最诚挚的问候。

2 个答案:

答案 0 :(得分:1)

Zuul支持负载平衡开箱即用,而不是在配置中提供url,请使用serviceId

 zuul:
      prefix: /api
      routes:
        defects-service:
         path: /defects-service/**
         serviceId: defects-service

答案 1 :(得分:0)

此问题的解决方案是使用以下配置:

zuul:
      prefix: /api
      routes:
        defects-service:
         path: /defects-service/**
         serviceId: defects-service

在那之后,如果您遇到任何类似Hystrix Readed timed的错误..,只需添加以下配置:

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 11000
ribbon:
  ConnectTimeout: 10000
  ReadTimeout: 10000