Как настроить Zuul несколько экземпляров одного микросервиса

Я работаю в весеннем облачном проекте, и у меня есть служба eruka, прокси-сервер zull и микросервис с именем Defects-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: // локальный: 8300

может ли кто-нибудь помочь мне решить эту проблему.

С наилучшими пожеланиями .

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
3 026
2

Ответы 2

Zuul поддерживает балансировку нагрузки из коробки, вместо того, чтобы указывать url в вашей конфигурации, используйте serviceId:

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

Привет @slimane, спасибо за ваш ответ, я изменил свою конфигурацию, добавив serviceId, но при вызове моей службы «status» я получаю следующую ошибку: 504, «error»: «Gateway Timeout», «message»: «com. netflix.zuul.exception.ZuulException: Hystrix Readed time out "есть ли какие-либо другие конфигурации, которые я должен добавить?

James 24.12.2018 21:41

вы можете опубликовать больше трассировки стека? пожалуйста, добавьте это в свой пост

stacker 24.12.2018 21:48

Я получаю: com.netflix.zuul.exception.ZuulException: at org.springframework.cloud.netflix.zuul.filters.post.SendErro‌ rFilter.findZuulExce‌ ption (SendErrorFilte‌ r.java:114) ~ [spring- cloud-netflix-zuul-2.1.0.RC3.jar: 2.1.0.RC3] на org.springframework.cloud.netflix.zuul.filters.post.SendErro‌ rFilter.run (SendErro‌ rFilter.java:76) ~ [spring-cloud-netflix-zuul-2.1.0.RC3.jar: 2.1.0.RC3]

James 24.12.2018 21:53

журналов недостаточно, первое предложение: tape.eager-load.enabled = true

stacker 24.12.2018 22:01

Большое спасибо @slimane за ваш ответ, я нашел решение и отправлю его в качестве ответа. С Уважением

James 24.12.2018 22:50

решение этой проблемы заключается в использовании следующего конфига:

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

после этого, если вы получили какую-либо ошибку, например, тайм-аут Hystrix Readed ... просто добавьте следующую конфигурацию:

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

Другие вопросы по теме