`
mina_java
  • 浏览: 70929 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Mina入门:Java NIO框架Mina、Netty、Grizzly介绍与对比

阅读更多

之前文章【Mina学习极其有效方法推荐】提到过,在开始Mina入门之前,最好先对现有的主流Java NIO框架作一个简单的了解,本文对Java NIO框架Mina、Netty、Grizzly作简单的介绍与对比。


我们先来看看三者之间的简介。


Mina:

Mina(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 Mina 版本2.04支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序,Mina 所支持的功能也在进一步的扩展中。目前,正在使用 Mina的应用包括:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia  Flash Media RTMP)、ObjectRADIUS、 Openfire等等。


Netty:

Netty是一款异步的事件驱动的网络应用框架和工具,用于快速开发可维护的高性能、高扩展性协议服务器和客户端。也就是说,Netty是一个NIO客户端/服务器框架,支持快速、简单地开发网络应用,如协议服务器和客户端。它极大简化了网络编程,如TCP和UDP套接字服务器。


Grizzly:

 Grizzly是一种应用程序框架,专门解决编写成千上万用户访问服务器时候产生的各种问题。使用JAVA NIO作为基础,并隐藏其编程的复杂性。容易使用的高性能的API。带来非阻塞socketd到协议处理层。利用高性能的缓冲和缓冲管理使用高性能的线程池。


OK,我们现在可以看看三者的简单对比了。


首先,从设计的理念上来看,Mina的设计理念是最为优雅的。当然,由于Netty的主导作者与Mina的主导作者是同一人,出自同一人之手的Netty在设计理念上与Mina基本上是一致的。而Grizzly在设计理念上就较差了点,几乎是Java NIO的简单封装。


其次,从项目的出身来看,Mina出身于开源界的大牛Apache组织,Netty出身于商业开源大亨Jboss,而Grizzly则出身于土鳖Sun公司。从其出身可以看到其应用的广泛程序,到目前为止,我见到业界还是使用Mina多一些,而Netty也在慢慢的应用起来,而Grizzly则似乎只有Sun自已的项目使用了,如果还有其他的公司或开源项目在使用,那就算我孤陋寡闻。


最后,从入门的文档来说,由于Mina见世时间相对较长,官方以及民间的文档与入门示例都相当的多。Netty的官方文档也做得很好,而民间文档就要相对于Mina少一些了。至于Grizzly,不管是官方还是民间,都很少见到其文档。


经过以上的介绍与简单对比,Mina、Netty、Grizzly三者您选择哪位美女呢?可以在评价中写写哦。


 

8
2
分享到:
评论
11 楼 attend 2012-01-04  
选netty吧
10 楼 mina_java 2011-07-06  
liuzidong 写道
Mina不错吧

还行吧,我认为它是Java NIO的最好选择。
9 楼 liuzidong 2011-07-06  
Mina不错吧
8 楼 mina_java 2011-07-05  
现在如果有项目需要使用Java NIO框架的朋友,非常建议采用Mina,因为有很多大公司在使用,几乎都是用来做服务器端的开发。
7 楼 mina_java 2011-07-05  
snake1987 写道
貌似在哪看过~~

简介部分是官方文档的翻译,对比部分是自己原创,是不是也看过三个框架的官方文档?
6 楼 snake1987 2011-07-05  
貌似在哪看过~~
5 楼 mina_java 2011-07-05  
suhuanzheng7784877 写道
我还是挺支持博主将此系列写下去的~

嘿嘿,会的,敬请期待!
4 楼 suhuanzheng7784877 2011-07-05  
我还是挺支持博主将此系列写下去的~
3 楼 mina_java 2011-07-05  
gxing 写道
我只会在Mina与Netty之间选择了,不会使用Grizzly,文档少,入门比较难了……

Mina与Netty的设计理念是一样的,Netty还对于Mina有一定的改进,可以考虑,但实际应用中好像还是Mina多一些哦
2 楼 mina_java 2011-07-04  
我本人对Mina独有情钟,如果你需要使用,当然是建议你选择Mina了
1 楼 gxing 2011-07-04  
我只会在Mina与Netty之间选择了,不会使用Grizzly,文档少,入门比较难了……

相关推荐

    Java面试题10道Java高级必备的Netty面试题!.pdf

    - Netty与其他网络库(如Grizzly或Mina)相比有哪些优势? 通过以上面试题,可以全面评估候选人在Netty框架的理解深度和实践经验。深入学习和掌握这些知识点,不仅有助于在面试中脱颖而出,还能在实际开发中提高...

    Netty面试题 +Netty综合面试题整合

    - 与 Java NIO、MINA、Grizzly 等比较,Netty 在易用性、性能、稳定性上具有优势。 在面试过程中,你可能需要展示对这些概念的理解,以及在实际项目中的应用经验。同时,了解如何解决常见的问题,如内存泄漏、性能...

    java 网络框架

    网络框架如Netty、Grizzly和MINA简化了网络应用的开发。这些框架提供了高级API,用于处理多线程、异步I/O、事件驱动的网络编程。例如,Netty以其高性能、灵活性和易用性而闻名,它使用了NIO(非阻塞I/O)来处理大量...

    java开源包3

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

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

    业界主流的NIO框架介绍 随着对高性能网络编程需求的增长,一些优秀的NIO框架应运而生,它们极大地简化了开发者的编码工作,提高了开发效率。以下是一些主流的NIO框架: 1. **Netty**:一个高性能、异步事件驱动的...

    JAVA网络通信系统的研究与开发(论文+源代码+开题报告)

    Java世界中有多个成熟的网络通信框架,如Netty、Grizzly、MINA等。这些框架封装了底层的I/O操作,提供了高度可扩展和性能优良的网络服务。例如,Netty因其高性能、易用性和灵活性,在实时通信、游戏服务器等领域广泛...

    rpc-server.zip

    **网络通信库的选择**:在Java中,如Netty、Mina、Grizzly等NIO框架广泛应用于高性能的网络应用开发,它们能够处理大量并发连接,并且提供灵活的事件驱动模型。`rpc-server.zip`可能使用了其中的一种或自定义的解决...

    JAVA上百实例源码以及开源项目源代码

    Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...

    java开源包4

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包101

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包6

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包9

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包8

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包10

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包5

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包1

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    Netty原理和使用

    Netty是一个高性能事件驱动的异步的非堵塞的IO(NIO)框架,用于建立TCP等底层的连接,基于Netty可以建立高性能的Http服务器。支持HTTP、WebSocket、Protobuf、BinaryTCP|和UDP,Netty已经被很多高性能项目作为其...

    Java资源包01

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

    java开源包2

    6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义通信协议,可完全替换NFS-RPC自带的协议。 淘宝开放平台JAVA版SDK top4java 设计原则 容易维护扩展(不...

Global site tag (gtag.js) - Google Analytics