2014-10-02 12 views
9

Ich habe einige Kommentare über den Build von Dropwizard-Anwendungen gelesen: [1] "Dropwizard ist so konzipiert, dass er als JAR und nicht als WAR-Datei ausgeführt wird." und [2] "Sie können dies nicht tun. Dropwizard bettet Jetty ein. Sie sollten Jersey nur als Standard-Webanwendung verwenden.", also meine Fragen sind:So stellen Sie eine Dropwizard-Anwendung bereit

1 - So stellen Sie eine JAR-Datei bereit eine Produktionsumgebung?

2 - Wie verwalte ich den Service? Gibt es zum Beispiel eine Möglichkeit, die Gesundheit der Anwendung zu überwachen? Wenn die Anwendung herunterfällt, wie kann ich sie automatisch neu starten?

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

Antwort

3

Sie Tools wie runit verwenden können oder systemd Ihre dropwizard App auf Linux zu verwalten. Sie können beispielsweise sicherstellen, dass sie beim Systemstart gestartet wird, und können Fehler erkennen. Es ist ein bisschen Scripting beteiligt.

Sie können ein Überwachungstool auf die HealthCheck-URL Ihrer App verweisen, um Warnmeldungen zu senden, wenn sie nicht funktionieren.

Für die Bereitstellung packe ich am liebsten Apps im System-Package-Format, .deb (Debian-basierte Systeme, einschließlich Ubuntu) oder .rpm (RedHat-basierte Systeme). Verwenden Sie den fpm package builder, um es zu erstellen, und fügen Sie Ihre runit-Dateien (oder was auch immer) und Skripte ein, um die jar-Datei irgendwo auf dem Zielsystem zu kopieren. Wenn Sie ein privates Paket-Repository haben, können Sie Builds Ihrer App darin einfügen, und die Installation wird zu einer Frage von "apt-get install myapp" oder "yum install myapp". Lege andernfalls das Paket auf deinen Zielserver und führe "rpm -i myapp.rpm" oder ähnliches aus.

+1

Wenn Sie auf Ubuntu sind, hat Jamie Furness ein großes Maven-Plugin [dropwizard-debpkg-maven-plugin] geschrieben (https://github.com/reines/dropwizard-debpkg-maven-plugin), das Sie verpacken kann app und config für Sie als .deb-Datei und erstellen Sie die entsprechenden init & upstart-Skripte für Sie. –

+0

Danke, tolle Lösung! – LucaA

2

Nach dem Ausführen von mvn Paket Ihres Quellverzeichnisses wird die genannte JAR-Datei im Zielverzeichnis von Maven erstellt.

Laden Sie diese JAR-Datei einfach in ein Verzeichnis Ihrer Wahl auf dem Server hoch, sagen Sie/opt/myapplication /.

Die JAR-Datei kann auf dem Server mit java-jar JARFILE ausgeführt werden, stellen Sie sicher, dass Sie Java dort installiert haben. Das ist es im Grunde.

Jetzt, wenn Sie dies in der Produktion ausführen, möchten Sie den Prozess überwacht (und neu gestartet, wenn es fehlschlägt) und automatisch beim Booten gestartet. Schauen Sie sich dazu das Startup-System Ihres Servers an (systemd wurde bereits für die Linux-Distributionen erwähnt, die es unterstützen, aber auf aktuellen Debian/Ubuntu-Versionen haben Sie ATM noch andere Boot-Mechanismen, Sie müssen wahrscheinlich ein Startskript für/etc/schreiben init.d/meineAnwendung).

Gesundheitschecks sind - wie bereits erwähnt - in die Dropwizard-App integriert, Sie fordern einfach regelmäßig die Health Check-URL an. In professionellen Umgebungen sollten Sie ein Tool wie Nagios verwenden, auf das Sie auf die URL verweisen können.

0

Wenn Ihr Server unix ist, können Sie fpm-Pakete erstellen, um Ihren Dienst auf dem Server zu installieren. Einfach fpm erstellen, auf den Server kopieren und installieren.

Oder verwenden Sie Stoff (http://www.fabfile.org/).

Verwandte Themen