如何部署dropwizard应用程序

时间:2014-10-02 16:25:41

标签: java tomcat deployment production dropwizard

我读了一些关于dropwizard应用程序构建的评论:[1]" Dropwizard被设计为作为JAR运行,而不是作为WAR文件运行。"和[2]"你不能这样做。 Dropwizard嵌入Jetty。您应该考虑使用Jersey作为标准Web应用程序。",所以,我的问题是:

1 - 如何在生产环境中部署jar文件?

2 - 我将如何管理服务?例如,有没有办法监控应用程序的健康状况?如果应用程序崩溃,我怎么能自动重新启动它?

[1] How to create a war from dropwizard app? [2] Dropwizard in tomcat container

3 个答案:

答案 0 :(得分:3)

您可以使用runit或systemd等工具管理Linux上的dropwizard应用程序。他们可以做一些事情,比如确保它在系统启动时启动,并且可以帮助检测故障。有一些脚本涉及。

您可以将监控工具指向应用的运行状况检查网址,以便在警报结束时发送警报。

对于部署,我更喜欢使用系统打包格式,.deb(基于Debian的系统,包括Ubuntu)或.rpm(基于RedHat的系统)打包应用程序。使用fpm包构建器创建它,并包含runit文件(或其他)和脚本,以便在目标系统上的某处复制jar文件。如果您有一个私有软件包存储库,您可以将应用程序的构建版本放入其中,并且安装成为" apt-get install myapp"或者" yum安装myapp"。否则,将软件包放到目标服务器上并运行" rpm -i myapp.rpm"或类似的。

答案 1 :(得分:2)

运行源目录的 mvn package 后,maven将在目标目录中创建所述jar文件。

只需将此jar文件上传到服务器上您喜欢的目录,例如/ opt / myapplication /。

可以使用 java -jar JARFILE 在服务器上执行jar文件,确保在那里安装了java。就是这样,基本上。

现在,当您在生产中运行此过程时,您希望监视该过程(如果失败则重新启动)并在启动时自动启动。为此,请查看您的服务器启动系统(之前提到过systemd支持它的那些Linux发行版,但是在当前的debian / ubuntu版本中,您还有其他启动机制,您可能需要为/ etc /编写一个启动脚本的init.d / MyApplication的)。

健康检查 - 如前所述 - 集成在dropwizard应用程序中,您只需在常规基础上请求健康检查网址。在专业环境中,你应该有一个像nagios这样的工具,你可以指向URL。

答案 2 :(得分:0)

如果您的服务器是unix,您可以构建fpm包以在服务器上安装您的服务。只需构建fpm,复制到服务器并安装它。

或使用面料(http://www.fabfile.org/)。