2016-09-22 4 views
5

Я разработал микросервис (служба загрузки REST Boot Service, развернутый как исполняемый JAR), чтобы отслеживать все действия сторонних проектов в качестве моего требования и его работы сейчас.Повторное развертывание службы загрузки без перезагрузки?

В настоящее время он работает над некоторыми проектами, и теперь у меня есть обновленный сервис с некоторыми дополнительными функциями.

Но я не могу переместить его на живой сервер без перезапуска существующего сервиса, поскольку он развернут как банку. Я боюсь перезапустить мой сервис, перезапуск может привести к потере данных из интегрированных проектов.

Какие улучшения я могу сделать в своей архитектуре для решения моей проблемы?

+0

Существует способ сделать это, используя [Горячую замену] (http://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html), но это может не сработать если вы развертываете JAR. Кроме того, он не предназначен для работы в классах при радикальных изменениях кода. – px06

+0

Благодарим вас за ответ, вам также нужно повторно развернуть классы. – Jamsheer

+0

Что вы описываете в основном на территории запуска нескольких экземпляров ваших служб, связанных с реестром служб. Это позволит вам сворачивать их для обновления по одному, в то время как всегда есть хотя бы один экземпляр, который все еще работает и доступен для клиентов. Однако это не так. Хороший старт - Google для «сервисного реестра микросервиса». – Gimby

ответ

0

Наконец-то получено решение по комментариям @Gimby.

Мы можем сделать это, развернув несколько экземпляров служб и связавшись с реестром службы. Здесь я достиг этого, используя eureka в качестве службы реестра, а также использовал zuul в качестве прокси.

2

Что относительно JRebel плагин. Он отлично работал для меня, но, к сожалению, это не бесплатное приложение. Как и альтернатива (я использовал этот подход с Spring MVC, с Spring Boot это могло быть иначе), я установил мягкую ссылку в рабочем каталоге на скомпилированном пути в JBoss (в моем случае это был каталог с именем target и * .class и *. jar). Что касается меня, первое решение с JRebel является наиболее подходящим для вас.

Смежные вопросы