• netty vs mina 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大忌了。


  • 相关阅读:
    nginx启动失败
    Windows下载安装docker详细步骤
    Consul
    Idea导入多个maven项目到同一目录下
    使用V-chart时踩过的一些坑
    java集合超详解
    HashMap
    curl和wget的区别和使用
    SourceTree3.2.6版本跳过注册办法
    单点登录
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314455.html
Copyright © 2020-2023  润新知