© Excellent backgrounds/Shutterstock.com
Java Magazin
Entwicklung und Betrieb von asynchronen Applikationen mit Vert.x in der Praxis

Vert.x im Unternehmenseinsatz

Ein aktuelles Hypethema in der Java-Community ist die asynchrone Programmierung mit den dazugehörigen Plattformen und Frameworks. Diese bieten spannende Lösungswege und neue Denkansätze. Aber sind sie ausgereift genug für die Anforderungen einer Businessanwendung, die ein sehr hohes Maß an Stabilität, Wartbarkeit, Skalierbarkeit sowie niedrige Latenz erfordert? In vorliegendem Beitrag wollen wir ein Beispielprojekt beschreiben, das ZANOX auf Basis von Vert.x implementiert hat und diese Frage klar mit „ja“ beantwortet. Wir werden im Folgenden Vert.x kurz einführen, dann das Projektsetup und die Integration in die bestehende Infrastruktur erläutern und zum Ende hin auch noch einmal das Monitoring und die Anbindung an andere Messaging-Systeme zeigen.

Mariam Hakobyan, Björn Stahl, Sascha Möllering


ZANOX hat sich dazu entschlossen, das hauseigene Tracking vollständig neu zu entwickeln. Ziel ist es dabei, die bestehende Tracking-Applikation auf eine neue Plattform zu heben, die performant ist (niedrige Latenz und hoher Durchsatz), gut skaliert und einfach erweitert werden kann. Um die Möglichkeiten zu evaluieren, sollte im ersten Schritt ein Prototyp entwickelt werden, der den gesamten HTTP-Traffic, der im Tracking anfällt, verarbeiten und selbst modular erweitert werden kann. ZANOX ist Europas größtes Netzwerk für Performance-Advertising. Dementsprechend hoch ist auch der Traffic: ca. 320 Millionen Requests pro Tag. Im Auswahlprozess eines für diese Anforderungen geeigneten Frameworks kamen folgende Technologien in Betracht: Node.js, Servlets (Java EE oder Spring), Vert.x [1], Akka und Go. Nach näherer Betrachtung und Evaluation der einzelnen Technologien hat sich das Entwicklerteam für Vert.x entschieden, da es den gewählten Einsatzzweck am besten abzudecken schien und eine schnelle Einarbeitung verspricht.

Performance-AdvertisingPerformance-Advertising gilt als Weiterentwicklung des klassischen Affiliate Marketings und basiert auf dem klar messbaren Erfolg aller eingesetzten Kanäle im Onlinemarketing. Ob Preisvergleichsseiten oder Shoppingportale, Coupons oder Cashback-Modelle, Display Advertising und Retargeting, E-Mail-Marketing, Suchmaschinen-, Mobile oder Social-Media-Marketing – der Advertiser bezahlt nur im Erfolgsfall.

Der größte Vorteil von Vert.x ist die Tatsache, dass die Plattform auf der JVM läuft, die über Jahre hinweg optimiert und verbessert wurde. Der inhärent polyglotte Ansatz, den das JDK 7 ermöglicht, ist ebenfalls sehr interessant, da dies die Migration von vorhandenen Anwendungen vereinfacht und den Umstieg auf eine andere Programmiersprache zum Kinderspiel macht: Innerhalb einer Vert.x-Anwendung können mehrere Sprachen verwendet werden. So wird eine schrittweise Migration zu einer anderen Sprache relativ einfach.

Im nächsten Schritt wurde vom Entwicklerteam ein erster Prototyp geschrieben, um zu verifizieren, dass der gewählte theoretische Ansatz auch in der Realität bestehen kann. Dieser bestand aus einem einfachen HTTP-Server, der sich mit wenigen Zeilen Code realisieren ließ.

VerticlesVerticles sind Klassen, die isoliert über einen eigenen Classloader geladen und von der Vert.x-Event-Loop abgearbeitet werden. Jedes Verticle wird (gleichzeitig) nur von lediglich einem Thread ausgeführt. Innerhalb der Verticles wird der Code ...

Java Magazin
Entwicklung und Betrieb von asynchronen Applikationen mit Vert.x in der Praxis

Vert.x im Unternehmenseinsatz

Ein aktuelles Hypethema in der Java-Community ist die asynchrone Programmierung mit den dazugehörigen Plattformen und Frameworks. Diese bieten spannende Lösungswege und neue Denkansätze. Aber sind sie ausgereift genug für die Anforderungen einer Businessanwendung, die ein sehr hohes Maß an Stabilität, Wartbarkeit, Skalierbarkeit sowie niedrige Latenz erfordert? In vorliegendem Beitrag wollen wir ein Beispielprojekt beschreiben, das ZANOX auf Basis von Vert.x implementiert hat und diese Frage klar mit „ja“ beantwortet. Wir werden im Folgenden Vert.x kurz einführen, dann das Projektsetup und die Integration in die bestehende Infrastruktur erläutern und zum Ende hin auch noch einmal das Monitoring und die Anbindung an andere Messaging-Systeme zeigen.

Mariam Hakobyan, Björn Stahl, Sascha Möllering


ZANOX hat sich dazu entschlossen, das hauseigene Tracking vollständig neu zu entwickeln. Ziel ist es dabei, die bestehende Tracking-Applikation auf eine neue Plattform zu heben, die performant ist (niedrige Latenz und hoher Durchsatz), gut skaliert und einfach erweitert werden kann. Um die Möglichkeiten zu evaluieren, sollte im ersten Schritt ein Prototyp entwickelt werden, der den gesamten HTTP-Traffic, der im Tracking anfällt, verarbeiten und selbst modular erweitert werden kann. ZANOX ist Europas größtes Netzwerk für Performance-Advertising. Dementsprechend hoch ist auch der Traffic: ca. 320 Millionen Requests pro Tag. Im Auswahlprozess eines für diese Anforderungen geeigneten Frameworks kamen folgende Technologien in Betracht: Node.js, Servlets (Java EE oder Spring), Vert.x [1], Akka und Go. Nach näherer Betrachtung und Evaluation der einzelnen Technologien hat sich das Entwicklerteam für Vert.x entschieden, da es den gewählten Einsatzzweck am besten abzudecken schien und eine schnelle Einarbeitung verspricht.

Performance-AdvertisingPerformance-Advertising gilt als Weiterentwicklung des klassischen Affiliate Marketings und basiert auf dem klar messbaren Erfolg aller eingesetzten Kanäle im Onlinemarketing. Ob Preisvergleichsseiten oder Shoppingportale, Coupons oder Cashback-Modelle, Display Advertising und Retargeting, E-Mail-Marketing, Suchmaschinen-, Mobile oder Social-Media-Marketing – der Advertiser bezahlt nur im Erfolgsfall.

Der größte Vorteil von Vert.x ist die Tatsache, dass die Plattform auf der JVM läuft, die über Jahre hinweg optimiert und verbessert wurde. Der inhärent polyglotte Ansatz, den das JDK 7 ermöglicht, ist ebenfalls sehr interessant, da dies die Migration von vorhandenen Anwendungen vereinfacht und den Umstieg auf eine andere Programmiersprache zum Kinderspiel macht: Innerhalb einer Vert.x-Anwendung können mehrere Sprachen verwendet werden. So wird eine schrittweise Migration zu einer anderen Sprache relativ einfach.

Im nächsten Schritt wurde vom Entwicklerteam ein erster Prototyp geschrieben, um zu verifizieren, dass der gewählte theoretische Ansatz auch in der Realität bestehen kann. Dieser bestand aus einem einfachen HTTP-Server, der sich mit wenigen Zeilen Code realisieren ließ.

VerticlesVerticles sind Klassen, die isoliert über einen eigenen Classloader geladen und von der Vert.x-Event-Loop abgearbeitet werden. Jedes Verticle wird (gleichzeitig) nur von lediglich einem Thread ausgeführt. Innerhalb der Verticles wird der Code ...

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