Автоматическая настройка маршрутов с помощью Zuul и Eureka - PullRequest
0 голосов
/ 30 сентября 2018

Благодаря чтению различных книг / руководств становится возможным автоматическая настройка маршрутов в Zuul при использовании его в сочетании с обнаружением службы Eureka.Это означает, что мне не нужно явно добавлять маршруты в application.properties Zull.

Так я правильно понимаю?Или мне все еще нужно явно добавить маршруты к Zuul, чтобы он работал в качестве шлюза?

Я бы хотел, чтобы он автоматически создавал маршруты из имен приложений, которые зарегистрированы в Eureka.Возможно ли это?

(Примечание: я действительно пытался это сделать, но когда я перехожу к http://localhost:8762/routes, я просто получаю страницу с ошибкой.)

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Конечно.В большинстве реализаций микросервисов внутренние конечные точки микросервисов не выставляются наружу.Набор общедоступных сервисов будет предоставлен клиентам с использованием шлюза API.

enter image description here

Прокси-сервер zuul внутри использует Eureka Server для обнаружения службы.

Я бы хотел, чтобы он автоматически создавал маршруты из имен приложений, которые зарегистрированы в Eureka.Это возможно?

Конечно.Я покажу вам пример шлюза.

1.Создайте свой сервисный проект (user-service)

создайте файл application.properties

# --- Spring Config
spring:
  application:
    name: OVND-USER-SERVICE

# Eureka client
eureka:
  client:
    serviceUrl:
      defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/}

2.Настройка проекта Zuul (Gateway-service)

1. @ EnableZuulproxy сообщает Spring Boot, что это Zuul-прокси

@SpringBootApplication
@EnableZuulProxy
@EnableDiscoveryClient
public class GatewayServiceApplication {

2.создать файл application.properties

# =======================================
# Gateway-service Server Configuration
# =======================================

# --- Spring Config
spring:
  application:
    name: gateway-service

server:
  port: ${PORT:8080}

# Eureka client
eureka:
  client:
    serviceUrl:
      defaultZone: ${EUREKA_URL:http://localhost:8761/eureka/}

zuul:
  host:
  routes:
    ## By default, all requests to user service for example will start with: "/user/"
    ## What will be sent to the user service is what comes after the path defined,
    ## So, if request is "/user/v1/user/tedkim", user service will get "/v1/user/tedkim".
    user-service:
      path: /user/**
      service-id: OVND-USER-SERVICE
    another-service:
      path: /another/**
      service-id: OVND-ANOTHER-SERVICE

Сайт Eureka (localhost: 8761)

enter image description here

0 голосов
/ 30 сентября 2018

Да.Вы можете интегрировать Zuul с Eureka и настраивать маршруты на основе имен приложений, зарегистрированных в Eureka.Просто добавьте следующую конфигурацию в приложение Zuul:

zuul:
  ignoredServices: "*"
  routes:
    a-service: /a-service/**
    b-service: /b-service/**
    c-service: /c-service/**
    d-service: /d-service/**
...