Можно ли использовать Zuul Edge Server без Eureka / Ribbon

У нас есть инфраструктура с обнаружением сервисов и балансировкой нагрузки (то есть на стороне сервера с STM и кластером weblogic). Сейчас мы находимся в процессе рефакторинга в микросервисы. Нам понадобится шлюз API, который выполняет базовую маршрутизацию к другим микросервисам. Netflix Zuul выглядит хорошим кандидатом, однако я не смог заставить Zuul работать без Eureka - но нам не нужна Eureka, поскольку у нас уже есть обнаружение сервисов и балансировка нагрузки.

  1. Можно ли использовать Zuul без Eureka и Ribbon?
  2. Если да, пожалуйста, укажите несколько строк гильдии, поскольку в вики о них нет упоминания.

Спасибо.


person Fahim Farook    schedule 02.12.2015    source источник


Ответы (3)


Да, это вполне возможно. Вы должны использовать @EnableZuulProxy в своем классе конфигурации и настроить его примерно так:

zuul:
  routes:
    yourService:
      path: /yourService/**
      serviceId: yourService

ribbon:
  eureka:
    enabled: false

yourService:
  ribbon:
    listOfServers: localhost:8080
person Ákos Ratku    schedule 02.12.2015
comment
Вы также можете поместить url в yourService. - person spencergibb; 02.12.2015
comment
Что было бы, если бы я не использовал spring-cloud? - person Divs; 29.06.2017
comment
Все эти изменения есть в конфиге Zuul, верно? Следует ли мне вносить какие-либо изменения в микросервис yourService? - person Govind Prabhu; 09.07.2018
comment
Да, они все в зуулах. Для последующих услуг никаких изменений не требуется. Кроме того, у Spring теперь есть собственный шлюз, если вы только начинаете, я предлагаю проверить его: cloud .spring.io / spring-cloud-gateway - person Ákos Ratku; 11.07.2018

Пример использования может быть таким:

shared.microservice.customer.service1.url=zttp://127.0.0.1:8080/shared/microservice/customer/

shared.microservice.customer.service2.url=zttp://127.0.0.1:8181/shared/microservice/customer/

ribbon.eureka.enabled = false

zuul.routes.customer-micro-service.path: /shared/microservice/customer/**

zuul.routes.customer-micro-service.serviceId: customers
customers.ribbon.listOfServers = 

zttp://ip:port1/shared/microservice/customer/,zttp://ip2:port2/shared/microservice/customer/
person user1562166    schedule 27.04.2016

Да, конечно ты можешь. Фактически, по умолчанию, если вы используете @EnableZuulProxy с Spring Boot Actuator, вы включаете две дополнительные конечные точки:

  • Маршруты
  • Фильтры

application.yaml

zuul:
  routes:
    users:
      path: /myusers/**
      url: https://example.com/users_service

Эти простые URL-адреса не выполняются как HystrixCommand и не балансируют нагрузку на несколько URL-адресов с помощью ленты.

Вы можете получить дополнительную информацию здесь.

person fgul    schedule 07.02.2020