Eugen Melechow EXXETA AG

Dropwizard ist ein sehr gelungenes Framework, das für die Realisierung von leichtgewichtigen und losen Architekturen auf Basis von Microservices optimal eingesetzt werden kann.

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.

Dropwizard 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 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 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 leistet dabei eine gute Unterstützung. Durch die Verwendung von Metrics 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 dort ebenfalls heruntergeladen werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 10.16 - "Security agil verankern"

Alle Infos zum Heft
261507Das Microservice-Framework Dropwizard
X
- Gib Deinen Standort ein -
- or -