web-dev-qa-db-ja.com

Vert.xとNettyの違いは何ですか?

Vert.xとNettyの違いは何ですか?なぜVert.xよりもNettyを選ぶべきなのですか?

どちらも高負荷I/O向けに設計された、イベント駆動型のノンブロッキングおよび非同期フレームワークです。

Vert.xはMulti-Reactorパターン(マルチスレッドJVMでのノードスタイルのイベントループ)に基づいていますが、NettyはInterceptor Chainパターンを使用しています。 インターセプターチェーンパターンがマルチリアクターパターンよりも優れている場合

私はNettyのドキュメントをざっと見ただけですが、Vert.xにはNettyよりも機能が多いようです。つまりVertxはスタンドアロンサーバーであり、ポリグロットであり、HAとクラスタリングをすぐに使用できます。

また、Vert.xはNettyよりも少し優れたベンチマークを持っています。

追伸免責事項-私はVert.xに非常に感謝しており、Nettyに慣れていません。したがって、Why should one ever prefer Netty over Vert.x?両方を比較しようとしています。

14
VB_

違いは、Vert.xがベース Nettyであることです。 pom.xmlvertx-core にあります:

<!-- We depend on the specific Netty dependencies not netty-all to reduce the size of fatjars -->
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-common</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-buffer</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-transport</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-handler</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-handler-proxy</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-codec-http</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-codec-http2</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-resolver</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-resolver-dns</artifactId>
  <version>${netty.version}</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>${jackson.version}</version>
</dependency>

そしてVert.xのNettyバージョン3.5.0-SNAPSHOTは:4.1.8.Final

Vert.x は、JVMの上に反応型アプリケーションを構築するためのNetty上のプラグイン可能なモジュールのツールキットとエコシステム全体です。

25