Регистрация на основе микросервиса с помощью Eureka Discovery Server - PullRequest
0 голосов
/ 13 марта 2019

Одно из наших клиентских приложений имеет следующую архитектуру -

  1. Угловая основа
  2. Веб-приложение на основе Spring Boot для связи с внешним интерфейсом
  3. Микросервисы на основе Spring Boot для общения с веб-приложением
  4. Клиент Eureka Discovery, позволяющий веб-приложению обнаруживать микросервисы

Недавно мы столкнулись с некоторой проблемой и хотим сделать один из микросервисов установленным в качестве приложения под автономным tomcat. Создание основного класса приложения для микросервиса расширило SpringBootServletInitializer, а изменение упаковки на войну помогло создать артефакт войны и развернуть его на tomcat, а также на Eureka, но не обслуживать.

Когда веб-приложение ищет сервис через Eureka и вызывает любой API, происходит сбой. Даже при вызове сервиса через Postman или непосредственно в браузере происходит сбой для зарегистрированного URL. Похоже, что микросервис при отображении в виде веб-приложения под tomcat не разрешается через Eureka. Есть предложения?

Конфигурация : Служба данных - будет развернута как война

spring.application.name=data-service
server.contextPath=/data-service
server.servlet.application-display-name=Data Service
spring.main.banner-mode=log
#server.port=9090
spring.jmx.default-domain=${spring.application.name}

eureka.client.service-url.defaultZone=http://localhost:9098/eureka
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.preferSameZoneEureka=true

ribbon.eureka.enabled=true
ribbon.ReadTimeout = 60000

При развертывании он регистрируется в Eureka Discovery с именем data-service , но Uri не является правильным для доступа к экземпляру, это выглядит как

GET http://data-service/query/xxxxx HTTP/1.1

Он пропускает порт Tomcat 8080 и контекст tomcat. Проверка вручную URI

http://localhost:8080/data-service/query/xxxxx

работает.

...