© Excellent backgrounds/Shutterstock.com
Java Magazin
Dropwizard für Microservices

Zauberhafte Lösung für Microservices

Wer auf der Suche nach einem geeigneten Framework für die Implementierung und Betrieb von Microservices ist, wird an Dropwizard nicht vorbeikommen. Dropwizard vereint nicht nur bekannte und erprobte Technologien aus dem Java-Umfeld, sondern bringt auch eine Menge nützlicher Werkzeuge mit sich und ermöglicht es somit, Microservices schnell und effizient zu realisieren.

Eugen Melechow


Dropwizard [1] ist eine Mischung aus Java-Bibliotheken, die in ein performantes und zuverlässiges Framework eingebettet sind. Obwohl der Ursprung von Dropwizard in der Anwendungsentwicklung liegt, ist das Framework perfekt für die Implementierung von Microservices geeignet. In Dropwizard wird der Entwickler nicht mit unübersichtlichen Konfigurationen oder einem komplexen Deployment konfrontiert, sondern erhält mit nur drei Klassen einen fertigen Microservice, der mit einem einfachen Befehl auf fast jeder Umgebung ausgeführt werden kann.

Der Technologiestack von Dropwizard besteht aus verschiedenen Teilen. Für den HTTP-Stack kommt Jetty [2] zum Einsatz. Der Microservice wird aber nicht in einen Webserver deployt, sondern der Webserver wird aus der main-Methode gestartet und ist somit Bestandteil des Microservice. Der komplexe Deployment-Prozess entfällt vollständig, und der Microservice wird als einfacher Java-Prozess ausgeführt. Für die Implementierung von RESTful Web Services kommt Jersey [3] zum Einsatz. Jersey ermöglicht unter anderem ein einfaches Mapping von Java-Objekten in den HTTP Requests. Der Datenaustausch, sowohl zwischen den Microservices als auch von und nach außen, wird im JSON-Format vorgenommen. Jackson [4] leistet dabei eine gute Unterstützung. Durch die Verwendung von Metrics [5] wird das Verhalten des Microservice in der produktiven Umgebung aufgezeigt. Eine Reihe weiterer bekannter Bibliotheken rundet das Framework ab. Dazu gehören unter anderem ein Apache-HTTP-Client und ein Jersey-Client für die Kommunikation mit den anderen Services, HTTP-Basic-Authentifizierung und OAuth2 für die Authentifizierung sowie Logback und SLF4J für Logging. Für die Anbindung weiterer Bibliotheken oder Technologien können eigene Dropwizard-Bundles entwickelt werden. Außerdem findet man auf GitHub eine Menge fertiger Bundles und auch interessante Bespiele. Die Beispielimplementierung zu diesem Artikel kann unter [6] heruntergeladen werden.

Einen Microservice entwickeln

Ein auf Microservices basierendes System unterscheidet sich in vielen Aspekten von einer monolithischen Applikation. An Stelle eines großen Artefakts werden viele kleine Microservices gebaut und deployt. Damit der Aufwand nicht Überhang nimmt, sollte ein Framework verwendet werden, das in allen Zyklen des Entwicklungsprozesses und des Betriebs dafür Unterstützung bietet. Dropwizard hilft bestens bei der Erfüllung dieser Anforderungen.

Das bevorzugte Build-Werkzeug für die Entwicklung mit Dropw...

Java Magazin
Dropwizard für Microservices

Zauberhafte Lösung für Microservices

Wer auf der Suche nach einem geeigneten Framework für die Implementierung und Betrieb von Microservices ist, wird an Dropwizard nicht vorbeikommen. Dropwizard vereint nicht nur bekannte und erprobte Technologien aus dem Java-Umfeld, sondern bringt auch eine Menge nützlicher Werkzeuge mit sich und ermöglicht es somit, Microservices schnell und effizient zu realisieren.

Eugen Melechow


Dropwizard [1] ist eine Mischung aus Java-Bibliotheken, die in ein performantes und zuverlässiges Framework eingebettet sind. Obwohl der Ursprung von Dropwizard in der Anwendungsentwicklung liegt, ist das Framework perfekt für die Implementierung von Microservices geeignet. In Dropwizard wird der Entwickler nicht mit unübersichtlichen Konfigurationen oder einem komplexen Deployment konfrontiert, sondern erhält mit nur drei Klassen einen fertigen Microservice, der mit einem einfachen Befehl auf fast jeder Umgebung ausgeführt werden kann.

Der Technologiestack von Dropwizard besteht aus verschiedenen Teilen. Für den HTTP-Stack kommt Jetty [2] zum Einsatz. Der Microservice wird aber nicht in einen Webserver deployt, sondern der Webserver wird aus der main-Methode gestartet und ist somit Bestandteil des Microservice. Der komplexe Deployment-Prozess entfällt vollständig, und der Microservice wird als einfacher Java-Prozess ausgeführt. Für die Implementierung von RESTful Web Services kommt Jersey [3] zum Einsatz. Jersey ermöglicht unter anderem ein einfaches Mapping von Java-Objekten in den HTTP Requests. Der Datenaustausch, sowohl zwischen den Microservices als auch von und nach außen, wird im JSON-Format vorgenommen. Jackson [4] leistet dabei eine gute Unterstützung. Durch die Verwendung von Metrics [5] wird das Verhalten des Microservice in der produktiven Umgebung aufgezeigt. Eine Reihe weiterer bekannter Bibliotheken rundet das Framework ab. Dazu gehören unter anderem ein Apache-HTTP-Client und ein Jersey-Client für die Kommunikation mit den anderen Services, HTTP-Basic-Authentifizierung und OAuth2 für die Authentifizierung sowie Logback und SLF4J für Logging. Für die Anbindung weiterer Bibliotheken oder Technologien können eigene Dropwizard-Bundles entwickelt werden. Außerdem findet man auf GitHub eine Menge fertiger Bundles und auch interessante Bespiele. Die Beispielimplementierung zu diesem Artikel kann unter [6] heruntergeladen werden.

Einen Microservice entwickeln

Ein auf Microservices basierendes System unterscheidet sich in vielen Aspekten von einer monolithischen Applikation. An Stelle eines großen Artefakts werden viele kleine Microservices gebaut und deployt. Damit der Aufwand nicht Überhang nimmt, sollte ein Framework verwendet werden, das in allen Zyklen des Entwicklungsprozesses und des Betriebs dafür Unterstützung bietet. Dropwizard hilft bestens bei der Erfüllung dieser Anforderungen.

Das bevorzugte Build-Werkzeug für die Entwicklung mit Dropw...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang