現在、node.jsを使用するのは非常に流行しています。 しかし、誰もが彼を好きではありません。 このレビューでは、node.jsの影響下で作成された競合他社について少しお話ししたいと思います
Vert.xは非同期のイベント駆動型フレームワークであり、その目標は一般的なnode.jsと交差しています。 高性能、シンプルな非同期性、設定はすべてvert.xにあります。
フレームワークの最初のバージョンは2012年にリリースされ、node.jsは2009年にリリースされました。ただし、VMwareはすでにサポートされており、CloudFoundryで実行できます。
カット下の製品の主な特徴:
- 多言語。 JavaScript、Ruby、Groovy、Java、Pythonを使用できます。 ScalaとClosureをサポートする準備がほぼ完了
- オープンソース。 ASL 2.0ライセンス
- 真の並行性と高性能
- Javaで記述され、JVMのすべての機能を使用し、プロセス間通信を心配することなく、コア間で簡単にスケーリングできます。
- Hazelcast-In-Memory Data Grid Systemを使用します。 自然にユーザーに透過的
- Nettyを使用
- 超シンプルな同時実行モデル。 同期ロック、揮発性ロック、または明示的なロックなし
- ヌードルのxml構成はありません。 すべてが非常に簡単です。
- パブリックリポジトリを備えたモジュラーシステム
- サーバーとクライアントの両方にまたがる分散メッセージバス。
- 利用可能な埋め込みバージョン
- さまざまなテストによると、おそらくそのクラスで最も生産的なフレームワーク
- JDK 1.7が必要
- WebSocket、SockJSサポート
面白い? scalaでのhelloworldの残りの例:
class SampleResticle extends Resticle { override def handles = { GET("/hello") :> OK( _ => "world ") } }
または、webrootディレクトリを提供するより単純なサーバーの例。 Groovyの例:
vertx.createHttpServer().requestHandler { req -> def file = req.uri == "/" ? "index.html" : req.uri req.response.sendFile "webroot/$file" }.listen(8080)
たとえば、最後のhelovorldを実行するには、以下を行う必要があります。
vertx run Server.groovy -instances 32
ご覧のとおり、すべてが非常にシンプルで明確です。
コードの例を見て、原則を読んだ後、私は当然、スーパーパフォーマンスに関する著者の声明を確認することにし、node.jsとの比較を探しました。
最初のグラフは、200 のみが与えられた場合のテスト結果を示します/ OK応答
2番目のテストは、72バイトのhtmlページを返します。
ここから取ったテスト。 これらのテストは比較的昔に行われました。 より詳細なテスト資料を用意しています。 彼については第3部で説明します。
残念ながら、これらのテストにはscalaテストは含まれていません。 ご存知のように、多くの場合scalaはjavaよりも高速です。
おそらく金曜日の投稿では、これで十分です。 次のパートでは、vert.xで使用される基本的な原理とパターンについて説明します。
プロジェクトウェブサイト 。 リンクは優れたドキュメントです。