Vert.x和Netty有什么区别?



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

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

Vert.x基于多反应器模式(多线程JVM上节点的样式事件循环(,但Netty使用拦截器链模式。拦截器链模式何时比多反应器模式有任何优势?

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

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

附言免责声明 - 我非常感谢 Vert.x,并且不熟悉 Netty。因此,通过问Why should one ever prefer Netty over Vert.x?我只是想比较它们。

不同之处在于 Vert.x基于Netty。如果你看一下顶点核心的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.x3.5.0-SNAPSHOT的Netty版本是:4.1.8.Final

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

最新更新