1、Codec比较
mina编码解码器(codec)创建实例可有以下选择:
1) 每一次接收到的数据创建一次codec实例
2) 为所有client链接创建一次codec实例
netty编码解码器创建实例可有以下选择:
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需要手动处理顺序、丢包检测、重发等等。
网上评价:
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大忌了。
相关的博客:http://my.oschina.net/leoson/blog?catalog=292948