VB_*_*VB_ 11 java multithreading nio netty vert.x
Vert.x和Netty有什么区别?为什么人们更喜欢Netty而不是Vert.x?
它们都是事件驱动的,非阻塞和异步框架,专为高负载I/O而设计.
Vert.x基于Multi-Reactor模式(多线程JVM上的Node风格事件循环),但Netty使用Interceptor Chain Pattern.Interceptor Chain Pattern比Multi-Reactor模式有什么好处?
我只是快速浏览一下Netty的文档,但看起来Vert.x在Netty上有一些额外的功能.即Vertx是一个独立的服务器,它是一个多语言,提供HA和开箱即用的集群.
Vert.x还有比Netty更好的基准测试.
PS免责声明 - 我非常感谢Vert.x,并且不熟悉Netty.所以问Why should one ever prefer Netty over Vert.x?我只想比较两者.
Arn*_*ver 26
区别在于Vert.x 基于 Netty.如果你看一下pom.xmlin vertx-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>
Run Code Online (Sandbox Code Playgroud)
Vert.x的Netty版本3.5.0-SNAPSHOT是:4.1.8.Final
Vert.x是Netty之上的可插拔模块的完整工具包和生态系统,用于在JVM之上构建响应式应用程序.