web-dev-qa-db-ja.com

Tomcat vs Vert.x

過去数日間、私はvert.xドキュメントを読んでいます。 vert.xは、ポリグロット、シングルスレッド、ノンブロッキングIO、モジュラーアーキテクチャ、高いスケーラビリティであることを知っています。

Tomcatとvert.xの間に他の大きな違いはありますか?

また、Tomcatを使用する必要がある場合とvert.xを使用する場合

27
Ronald Randon

Tomcatはサーブレットコンテナであるため、WebサイトやWebサービスなどのHTTPベースのアプリケーションの開発と展開に役立つプラットフォームを提供します。

代わりにVert.xは、あらゆる種類の非同期アプリケーションの開発と展開を支援します。最新バージョンのTomcatが非同期サーブレットをサポートしていることは事実ですが、Vert.xには、はるかに大量のユーザーフレンドリーな非同期APIとその他の優れた機能が付属しています。

  • 完全なファイルシステム非同期API
  • TCP(サーバーおよびクライアント)
  • UDP(サーバーおよびクライアント)
  • HTTP(S)(サーバーおよびクライアント)
  • 共有データサービス(polyglotモジュール間でオブジェクトを共有)
  • HAとクラスタリング
  • クラスタ全体のメッセージング(イベントループ)
  • イベントバスブリッジ(SockJSを介したブラウザーへのイベントループの拡張)
  • Vert.xモジュールの成長するエコシステム
  • レガシーコードにVert.xを埋め込む可能性
  • Javaライブラリの既存の豊富で堅固なエコシステムを活用(Vert.xはNode.jsとは異なり、JVMで実行されます)

個人的にはVert.xを学ぶことは非常に便利だと思います。職場で同じ知識を再利用して、3つの非常に異なる製品を実現するために大成功を収めました。ゼロコピーの超高速Redisプロキシ、JPA支援のREST API、および反応性の高い単一ページWebアプリケーションです。

サンプルコード を見てください。これはかなり単純で、ボイラープレートはゼロに近い値です。

もう1つ:Vert.xはシングルスレッドでどこで読みましたか。それは真実ではない! Vert.xには非常に ニートな同時実行モデル があり、すべてのコアが均等に使用されます(これもNode.jsとは異なります)。

楽しい!

39
sscarduzio

Vert.x HTTPサーバーでは、多くのポートを同時にリッスンできます。また、HTTPサーバーをhttpクライアントなどと組み合わせたい場合、その並行性モデルは、スレッドプールベースのアプローチよりもはるかに優れています。そのパフォーマンスもはるかに優れています。

2
Michael P