Конечно.В большинстве реализаций микросервисов внутренние конечные точки микросервисов не выставляются наружу.Набор общедоступных сервисов будет предоставлен клиентам с использованием шлюза API.
Прокси-сервер 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)