it-swarm.com.de

Tomcat vs Vert.x

In den letzten Tagen habe ich vert.x-Dokumente gelesen. Ich weiß, dass vert.x mehrsprachig ist, Singlethreading, nicht blockierende E/A, modulare Architektur und hohe Skalierbarkeit. 

Gibt es noch andere wesentliche Unterschiede zwischen Tomcat und vert.x?

Wann sollten wir Tomcat verwenden und wann vert.x verwenden?

24
Ronald Randon

Tomcat ist ein Servlet-Container und bietet Ihnen so eine Plattform, mit der Sie HTTP-basierte Anwendungen wie Websites oder Web-Services entwickeln und bereitstellen können.

Stattdessen hilft Ihnen Vert.x, beliebige asynchrone Anwendungen zu entwickeln und bereitzustellen. Es stimmt, dass moderne Tomcat-Versionen asynchrone Servlets unterstützen, Vert.x verfügt jedoch über eine weitaus größere Anzahl benutzerfreundlicher asynchroner APIs sowie andere Vorteile:

  • Komplette asynchrone API des Dateisystems
  • TCP (Server und Client)
  • UDP (Server und Client)
  • HTTP (S) (Server und Client)
  • Shared Data Service (gemeinsame Nutzung von Objekten zwischen Polyglot-Modulen)
  • HA und Clustering
  • Clusterweite Nachrichtenübermittlung (Ereignisschleife)
  • Event Bus Bridge (Erweiterung der Ereignisschleife für Browser über SockJS)
  • Ein wachsendes Ökosystem von Vert.x-Modulen
  • Möglichkeit, Vert.x in den alten Code einzubetten
  • Nutzung des vorhandenen umfassenden und soliden Ökosystems von Java-Bibliotheken (Vert.x wird auf der JVM im Gegensatz zu Node.js ausgeführt)

Ich persönlich finde es sehr nützlich, Vert.x zu lernen. Bei der Arbeit habe ich dieses Wissen mit großem Erfolg verwendet, um drei sehr unterschiedliche Produkte zu realisieren: einen ultraschnellen, nullkopierbaren Redis-Proxy, eine mit JPA unterstützte REST-API und eine reaktive einseitige Webanwendung.

Schauen Sie sich den Beispielcode an , es ist ziemlich geradlinig und die Boilerplate ist nahe bei Null.

Noch etwas: Wo haben Sie gelesen, dass Vert.x Single-Thread ist? Es ist nicht wahr! Vert.x hat ein sehr sauberes Parallelitätsmodell , das sicherstellt, dass alle Kerne gleichermaßen verwendet werden (im Gegensatz zu Node.js). 

Genießen!

36
sscarduzio

Mit dem Very.x HTTP-Server können Sie viele Ports gleichzeitig abhören. Das Parallelitätsmodell ist viel besser als jeder auf einem Threadpool basierende Ansatz, wenn Sie Ihren HTTP-Server mit dem HTTP-Client b oder einem anderen Element kombinieren möchten. Die Leistung ist auch viel besser.

0
Michael P