`
kavy
  • 浏览: 884115 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

netty 与 mina比较(转)

 
阅读更多

Netty和mian比较报告
一、数据测试报告

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

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

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

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

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

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

 

netty

mina

 

Server

client

server

client

第一次

5076

5349

5051

5236

第二次

5375

5490

4902

4976

第三次

5521

5280

4953

5053

第四次

5367

5508

4980

5214

备注:当传输量达到100m时,mina抛异常:java.lang.OutOfMemoryError: Java heap space

结果:mina效率更快,netty性能更稳。

 

二、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大忌了。

作者:zhanghua.1199
分享到:
评论

相关推荐

    MINA2与Netty4比较分析

    接下来将根据标题和描述的要求详细分析Mina2与Netty4的区别,重点从它们的线程模型、Buffer使用以及Netty4中集成的序列化工具ProtoBuf等方面进行比较。 首先,Mina2和Netty4都是异步事件驱动的网络应用框架。Netty4...

    Java学习之IO总结及mina和netty

    在本文中,我们将深入探讨Java IO,并结合MINA和Netty这两个流行的网络编程框架进行分析。 首先,Java IO提供了丰富的类库,允许程序进行数据的读写操作,包括文件操作、流处理、序列化等。它基于流的概念,分为...

    NIO Netty框架

    NIO(Non-blocking I/O)框架是一种高性能的I/O模型,Netty和Mina都是基于NIO的框架。Netty和Mina都是Java开发的高性能网络框架,供开发者快速构建高性能的网络应用程序。下面是关于Netty和Mina的详细知识点: 开发...

    MINA、Netty、Twisted放在一起学

    此外,“Mina、Netty、Twisted一起学(六):session.docx”深入解析了会话管理,这是保持客户端与服务器之间状态的关键;“Mina、Netty、Twisted一起学(八):HTTP服务器.docx”则让我们掌握了如何利用这三个框架...

    Netty 3.0.2.GA 的源码--- Mina的兄弟

    Netty、Mina、Cindy都是不错的NIO开源框架,后两者都是在Netty的基础上演化出来的。所以要学习好Java的异步通信框架,这三个都是不可多得的好材料。 本资源仅供学习和参考使用,若要进行开发,请下载相应的Jar包。

    Java视频教程 Java游戏服务器端开发 Netty NIO AIO Mina视频教程

    jaca视频教程 jaca游戏服务器端开发 Netty NIO AIO Mina视频教程 课程目录: 一、Netty快速入门教程 01、第一课NIO 02、第二课netty服务端 03、第三课netty客户端 04、第四课netty线程模型源码分析(一) 05、...

    mina2.0 含11个jar包

    mina-filter-codec-netty-2.0.0-M6.jar mina-filter-compression-2.0.0-M6.jar mina-integration-beans-2.0.0-M6.jar mina-integration-jmx-2.0.0-M6.jar mina-integration-ognl-2.0.0-M6.jar mina-integration-...

    Netty权威指南(第2版)

    长期从事高性能通信软件的架构设计和开发工作,有多年在NIO领域的设计、开发和运维经验,精通NIO编程和Netty、Mina等主流NIO框架。目前负责华为软件公司下一代SOA中间件和PaaS平台的架构设计工作。

    NIO学习-Java源代码分享(含netty)

    Java NIO(New IO)是Java 1.4版本引入的一个新模块,它提供了一种新的I/O方式,与传统的BIO(Blocking I/O)相比,NIO具有更好的性能和可伸缩性,尤其在处理大量并发连接时。NIO的核心组件包括Channel、Buffer和...

    netty4中文用户手册

    最后,手册建议用户阅读《Netty 实战(精髓)》来获取更深入的理解,并指出Apache MINA是另一个类似于Netty的NIO框架,用户也可以参考《Apache MINA 2用户指南》来获得更多的知识。 Netty4用户手册不仅包含了官方文档...

    Netty nio protocolbuf视频课程

    包含了Netty,NIO AIO,Mina知识的详解以及netty结合spring protocolbuf的源码

    Java Netty 分布式开发 框架

    Netty的设计灵感来源于JBoss的MINA框架,但二者在设计理念上有所不同。Netty更轻量级,具有更加清晰的文档、更高的更新频率和更简单的使用方式。相比MINA,Netty主要优势在于对Google Protocol Buffers的支持,对IOC...

    最透彻的的Netty高性能原理和框架架构解析,使用文件和图形详细描述了netty的原理

    * 《选 Netty 还是 Mina:深入研究与对比(二)》 * 《Netty 4.x 学习(一):ByteBuf 详解》 * 《Netty 4.x 学习(二):Channel 和 Pipeline 详解》 * 《Netty 4.x 学习(三):线程模型详解》

    Netty 4.x User Guide 中文翻译《Netty 4.x 用户指南》

    Netty 4.x版本相较于之前的版本进行了大量的更新与改进,提供了更加高效、稳定的服务端和客户端网络通信解决方案。Netty 4.x用户指南为开发者提供了全面的学习文档,内容涵盖了Netty的基本使用、高级特性和架构概念...

    netty 官方文档

    - **Netty** 是由 Mina 的作者基于 Mina 打造的一个全新 Java 网络开发框架,它以其简单、易用及高效的特点而受到广泛好评。 - 当前,Netty 由 JBoss 负责维护和支持,这为它的稳定性和权威性提供了保障。 #### 二...

    netty5.0架构剖析和源码解读

    业界主流的NIO框架如Netty、Mina等,它们封装了底层的NIO操作,提供了更高层次的网络编程抽象,简化了网络应用的开发。 2. NIO入门 Netty中的NIO实现主要基于java.nio包,NIO服务端和客户端的创建与传统IO模型有很...

Global site tag (gtag.js) - Google Analytics