У меня есть приложение на python, использующее порт 8004, который имеет конечные точки.Мне нужно интегрировать его в платформу микросервисов, которая имеет порт 8001 Eureka discovery server, порт 8002 Spring Boot Admin, порт 80 шлюза. Шлюз использует прокси Zuul и перенаправляет запросы в требуемые службы.
У меня есть два варианта:
- Измените код моего python-приложения, чтобы оно могло иметь конечные точки для служб Spring Cloud
- Или используйте Spring Cloud Sidecar - в котором реализованы эти конечные точки.https://cloud.spring.io/spring-cloud-netflix/multi/multi__polyglot_support_with_sidecar.html
Я решил иметь коляску.Порт коляски 8003, порт Python-приложения 8004. @EnableSidecar
аннотация + @EnableDiscoveryClient
- и магия.Затем мне нужно добавить конфигурацию шлюза для пересылки запросов в python-сервис.И мне нужна конфигурация для коляски Zuul Proxy, чтобы она перенаправляла запросы к приложению python.
порт 80 шлюза -> порт sidecar 8003 -> порт python-app 8004.
Прекрасно, и этоработает.Когда я открываю веб-интерфейс Eureka, там есть все сервисы.Когда я открываю интерфейс пользователя Spring Boot Admin, он говорит, что служба python (его коляска) не работает.
Клиент Spring Boot Admin (конфигурация на стороне коляски), его порт 28003, поэтому он отличается от коляски.
management:
server:
port: 18003
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
Я заменил @EnableSidecar на @EnableZuulProxy.Теперь все работает, и приложение python-app видно в Spring Boot Admin.
Мои два вопроса:
Почему @EnableSidecar
имеет @EnableCircuitBreaker
, если sidecar нетнужен автоматический выключатель по умолчанию?Это имеет смысл, если есть один экземпляр sidecar и несколько экземпляров python-сервиса.У меня 1: 1 - одна коляска и одно python-приложение.Если приложение python недоступно, sidecar должен вернуть ошибку.Мне не нужен выключатель?Или я?
Почему аннотация @EnableSidecar
влияет на клиента Spring Boot, поэтому она не отображается в интерфейсе администратора Spring Boot.Я думаю, что есть ошибка, или как мне включить отслеживание боковой панели в веб-интерфейсе Spring Boot Admin.
Версия Spring Boot 2.0.7, версия Spring Cloud 2.0.0