2016-09-22 3 views
5

필자는 제 3 자 프로젝트의 모든 활동을 요구 사항 및 작업으로 추적하기 위해 마이크로 서비스 (Spring Boot REST 서비스, 실행 가능한 JAR로 배포)를 개발했습니다.재시작하지 않고 스프링 부트 서비스를 재배포 하시겠습니까?

현재 일부 프로젝트가 진행 중입니다. 이제 몇 가지 추가 기능으로 서비스를 업데이트했습니다.

그러나 기존 서비스를 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 MVC와 함께이 접근법을 사용했다. 그렇지 않다면), JBoss에서 컴파일 된 경로의 작업 디렉토리에 소프트 링크를 설정했다. (내 경우에는 이름 대상과 * .class와 *. jar 파일). 나를 위해, JRebel의 첫 번째 솔루션이 가장 적합합니다.

관련 문제