【问题标题】:How to deploy a dropwizard application如何部署 dropwizard 应用程序
【发布时间】:2014-11-27 16:47:11
【问题描述】:
【问题讨论】:
标签:
java
tomcat
deployment
production
dropwizard
【解决方案1】:
您可以使用 runit 或 systemd 等工具在 Linux 上管理您的 dropwizard 应用。他们可以做一些事情,比如确保它在系统启动时启动,并且可以帮助检测故障。涉及到一些脚本。
您可以将监控工具指向应用的运行状况检查 URL,以便在应用出现故障时发送警报。
对于部署,我更喜欢使用系统打包格式 .deb(基于 Debian 的系统,包括 Ubuntu)或 .rpm(基于 RedHat 的系统)来打包应用程序。使用 fpm 包构建器创建它,并包含您的 runit 文件(或其他文件)和脚本以将 jar 文件复制到目标系统的某个位置。如果你有一个私有的包存储库,你可以将你的应用程序的构建放入其中,安装就变成了“apt-get install myapp”或“yum install myapp”的问题。否则,将包放到目标服务器上并运行“rpm -i myapp.rpm”或类似的。
【解决方案2】:
运行你源目录的mvn package后,maven会在目标目录下创建上述jar文件。
只需将此 jar 文件上传到服务器上您喜欢的目录,例如 /opt/myapplication/。
jar 文件可以在服务器上使用 java -jar JARFILE 执行,请确保您已经安装了 java。基本上就是这样。
现在,当您在生产中运行此程序时,您希望进程受到监督(如果失败则重新启动)并在启动时自动启动。为此,请查看您的服务器启动系统(systemd 之前提到过那些支持它的 Linux 发行版,但在当前的 debian/ubuntu 版本上,您还有 ATM 其他启动机制,您可能需要为 /etc/ 编写启动脚本init.d/myapplication)。
健康检查 - 如前所述 - 集成在 dropwizard 应用程序中,您只需定期请求健康检查 URL。在专业环境中,您应该有一个可以指向 URL 的工具,例如 nagios。