相关推荐:java - Netty vs Apache MINA

gh-performance TCP server What are the pros & consReference links:Apache MINA (source)Netty (source) java network-programming apache-mina netty

详情见:

http://www.baidu.com/link?url=DoSzhyXFwhQGrVjstenkT80AuwmGMn3HH_1KVxV5FH47bh4F88c_BMNOMSZqliEKl_tC74ijx2Gz1nPf1d646wvn3gHzq4-qKMAiuHNnvabb0VeK0ipda1Ih-2GZMIa4

Netty和mian比较报告

一、数据测试报告

简述:1、启动服务器,等到客户端接入

2、客户端发送链接请求。当已经链接,记录当前时间并向服务端发送约50m数据,每次1kb.

3、当服务端接收到链接,第一次接收到数据后,记录当前时间

4、服务端将接收到的数据再返回给客户端。当服务端接收数据超过50m,则停止接收,并记录当前时间

5、当客户端接收数据量超过50m,记录当前时间。终止链接。

6、服务端和客户端得到执行时间。

二、codec和handler比较

以下只是个人实践。可能会有其它办法解决。

1、Codec比较

mina编码解码器(codec)创建实例可有以下选择:

1)

每一次接收到的数据创建一次codec实例

2)

为所有client链接创建一次codec实例

netty编码解码器创建实例可有以下选择:

1)

每一次链接创建一次codec实例

2)

为所有client链接创建一次codec实例

2、Handler比较

Mina的handler创建实例可有以下选择:

1)

为所有client链接创建一次codec实例

Netty编码解码器创建实例可有以下选择:

1)

每一次链接创建一次handler实例

2)

为所有client链接创建一次handler实例

三、文档比较

1、netty和mina文档都比较多,但mina文档不齐全,netty文档比较清晰

四、UDP协议传输

1、 netty将UDP无连接的特性暴露出来;而mina对UDP进行了高级层次的抽象,可以把UDP当成"面向连接"的协议,Netty需要手动处理顺序、丢包检测、重发等等。

五、协议支持

Netty架构:

Mina架构

没有找到,但应有类似技术支持。

网上评价:

1.

mina将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比下性能会有所下降;netty解决了这个设计问题。

2.

netty基本的架构和mina几乎完全一样,使用时候思想上差不多;但是有很多细节的改进(比如说mina的IoSession每次读写完要调用flip(),netty的channel则不用,并支持zero copy)。

3.

netty比mina使用起来更简单。

4.

关于UDP链接:mina把TCP和UDP一样当"有连接"的处理,一个UDP请求会按照address产生一个新的 IoSession,过期时间是1分钟,这样做的好处是显然的,但是对于有性能要求的项目就不好了,对一个无连接的东西cache 1分钟,大多数时候可能是白cache了,做无用功。 Mina这样做可能还有个初衷是连续解码用的,比如一个包太大了,分了两次传输;但是这样的设计应该是udp大忌了。

相关推荐:Java 8 CompletableFuture vs Netty Future

ture provided by Netty Netty documentation mentions that JDK 8 adds CompletableFuture which somewhat overlaps io.netty.util.concurrent.Future http://netty.io/wiki/using-as-a-generic-library.html The questi

快照源:http://my.oschina.net/hnzhanghua/blog/72061