2016-09-22 114 views
5

我开发了一个微服务(Spring Boot REST服务,部署为可执行JAR),以跟踪第三方项目中的所有活动,并将其作为我的需求和其工作现在。重新部署弹簧引导服务而不重新启动?

目前它的工作除了一些项目,现在我已经更新了一些附加功能的服务。

但是我不能在不重新启动现有服务的情况下将它移动到活服务器,因为它被部署为jar。我害怕重启我的服务,重启可能会导致集成项目的数据丢失。

我可以在我的架构中做什么改进来解决我的问题?

+0

有一种方法可以使用[热插拔](http://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html)来做到这一点,但这可能不适用于你是否正在部署JAR。当你进行剧烈的代码更改时,它也不适用于类。 – px06

+0

感谢你的回应,需要重新部署类也 – Jamsheer

+0

你所描述的基本上是运行绑定到服务注册表的服务的多个实例的领土。这将允许您一次性升级一个实例,同时至少有一个实例仍在运行并可供客户端使用。然而,这不是微不足道的。一个谷歌的“微服务服务注册表”是一个好的开始。 – Gimby

回答

0

最后得到了@Gimby评论的解决方案。

我们可以通过部署多个服务实例并将其绑定到服务注册表来实现它,在此我通过使用eureka作为注册表服务并使用zuul作为代理来实现它。

2

JRebel插件怎么样?它非常适合我,但不幸的是,它不是免费的应用程序。像另一种方式(我在Spring MVC中使用了这种方法,使用Spring Boot可能会有其他方式),我在工作目录中设置了JBoss编译路径中的软链接(在我的例子中,它是dir,名称为target,* .class和*。 jar文件)。至于我,JRebel的第一个解决方案是最适合你的。

相关问题