Добавьте Zuul к установке Netflix OSS

У меня есть стек netflix oss, работающий на Linux. в этом стеке есть Eureka и куча установленных микросервисов (привет-сервисов), все они работают в отдельных док-контейнерах.

Он был установлен с использованием Maven и Spring Boot.

Мой вопрос: как я могу добавить Zuul в этот стек? Я нашел кое-что в сети, но они также устанавливают Eureka, и я боюсь перезаписать текущую Eureka, если запущу это.


person Sam Ucich    schedule 09.01.2017    source источник


Ответы (2)


Вам нужно добавить аннотацию @EnableZuulProxy к основному классу

@SpringBootApplication
@EnableZuulProxy
@EnableHystrixDashboard
public class ZuulApp{
   public static void main(String[] args) {
       SpringApplication.run(ZuulApp.class, args);
   }
}

и в файле application.yml добавьте маршруты с именами ваших eureka-microservices

zuul:
   ignoredServices: '*'
   routes:
      microservice1: 
         path: /microservice1/** 
         stripPrefix: false

      microservice2:
         path: /microservice2/**
         stripPrefix: false

      ...
      #If you have hystrix
      hystrix: 
          threadpool:
            default:
               maxQueueSize: 100
               queueSizeRejectionThreshold: 100
          command:      
            default:
             execution:
                 isolation:
                     thread:
                        timeoutInMilliseconds: 60000
     #load balancing
      ribbon:
         MaxAutoRetries: 2 
         MaxAutoRetriesNextServer: 2        
         OkToRetryOnAllOperations: true
         ServerListRefreshInterval: 2000
         ConnectTimeout: 50000
         ReadTimeout: 50000

По умолчанию zuul работает на порту 8500.

Зависимость от maven

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
person gaston    schedule 09.01.2017

  1. Кроме того, убедитесь, что вы используете идентификатор службы для маршрутизации URL-адресов. Например:

    zuul:
      routes:
        httpbin:
          path: /**
          serviceId: httpbin
    
  2. Zuul должен знать об eureka, чтобы иметь возможность получать правильные IP-адреса для различных запущенных служб.

     ribbon:
       eureka:
        enabled: false
    

Приведенная выше конфигурация гарантирует, что в будущем вы сможете динамически добавлять дополнительные серверы для определенных служб без изменения конфигурации сервера маршрутизации zull, поскольку он сможет запрашивать и обновлять серверы, на которых работают определенные службы, запрашивая eureka.

person akshaya pandey    schedule 18.05.2017