Spring Cloud Netflix — как получить доступ к Eureka/Ribbon из традиционного веб-приложения?

Все, что я нашел в Интернете о Spring Cloud Netflix, касается запуска микросервисов из загрузочных приложений с использованием @EnableEurekaClients и так далее.

Теперь я пытаюсь подключить свой микросервис логирования в рамках традиционного военного приложения (springmvc, jaxws и т. д.) - часть наследия, которое нельзя преобразовать в Boot или каким-либо образом изменить (по техническому заданию).

Я создал новый модуль maven «log-server-client», который ничего не знает о верхнем веб-уровне и предназначен для использования в качестве простой зависимости в любом проекте maven.

Как мне настроить доступ к Spring Cloud Netflix для этой простой зависимости? Хотя бы как настроить Эврику и Ленту?

Я только что извлек несколько строк кода из RestTemplate и создал свой собственный JmsTemplate (микросервис работает с удаленным взаимодействием jms с apache camel и activemq), точно так же, как это делается в RestTemplate, но этот код по-прежнему не имеет связи с инфраструктурой.

afaik, мы можем создать глобальный singleton bean-компонент, запустить отдельный поток из этого bean-компонента и запустить Boot app из этого потока, но вам не кажется, что это очень некрасиво и может привести к проблемам? Как это действительно следует использовать?


person Oleg Chirukhin    schedule 25.12.2015    source источник


Ответы (1)


Отличный вопрос!

Один из подходов заключается в использовании «коляски». Кажется, это сопутствующее приложение Spring Boot, которое регистрируется на сервере Eureka от имени вашего традиционного веб-приложения.

См., например:

http://www.java-allandsundry.com/2015/09/spring-cloud-sidecar.html

http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html#_polyglot_support_with_sidecar

Другой подход заключается в использовании следующей библиотеки:

«Небольшая библиотека, позволяющая регистрировать устаревшие приложения в службе обнаружения Eureka».

https://github.com/sawano/eureka-legacy-registrar

Эту библиотеку можно использовать вне Spring Boot.

person Mark McLaren    schedule 07.10.2016