【问题标题】:What is the difference between Vert.x and Netty? [closed]Vert.x 和 Netty 有什么区别? [关闭]
【发布时间】:2017-07-20 12:16:28
【问题描述】:

Vert.x 和 Netty 有什么区别?为什么人们更喜欢 Netty 而不是 Vert.x?

它们都是为高负载 I/O 设计的事件驱动、非阻塞和异步框架。

Vert.x 基于多反应器模式(多线程 JVM 上的节点样式事件循环),但 Netty 使用拦截器链模式。 什么时候拦截器链模式比多反应器模式有什么好处?

我只是快速浏览了 Netty 的文档,但似乎 Vert.x 比 Netty 有一些额外的功能。 IE。 Vertx 是一个独立的服务器,它是一个多语言的,提供开箱即用的 HA 和集群。

Vert.x 的基准测试也比 Netty 好一点。

附:免责声明 - 我非常欣赏 Vert.x,但对 Netty 并不熟悉。因此,通过询问Why should one ever prefer Netty over Vert.x?,我只是想比较它们。

【问题讨论】:

标签: java multithreading netty nio vert.x


【解决方案1】:

不同之处在于 Vert.x 基于 Netty。如果您查看vertx-core 中的pom.xml,您会发现:

<!-- 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 3.5.0-SNAPSHOT 的 Netty 版本是:4.1.8.Final

Vert.x 是一个完整的工具包和可插拔模块生态系统,位于 Netty 之上,用于在 JVM 之上构建反应式应用程序。

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2010-12-10
    • 2011-09-20
    • 2013-03-25
    • 2023-03-08
    相关资源
    最近更新 更多