写点什么

基于 Java NIO 框架区别对比,spring 教程下载

用户头像
极客good
关注
发布于: 刚刚

1、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 等等。


2、Netty


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


3、Grizzly


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


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


在此我向大家推荐一个架构学习交流群。交流学习群号:575745314 里面会分享一些资深架构师录制的视频录像:有 Spring,MyBatis,Netty 源码分析,高并发、高性能、分布式、微服务架构的原理,JVM 性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多


四.Netty 为什么这么火?


Netty 是目前最流行的由 JBOSS 提供的一个 Java 开


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


源框架 NIO 框架,Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。


相比 JDK 原生 NIO,Netty 提供了相对十分简单易用的 API,非常适合网络编程。Netty 是完全基于 NIO 实现的,所以 Netty 是异步的。


作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。


Netty 无疑是 NIO 的老大,它的健壮性、功能、性能、可定制性和可扩展性在同类框架都是首屈一指的。它已经得到成百上千的商业/商用项目验证,如 Hadoop 的 RPC 框架 Avro、RocketMQ 以及主流的分布式通信框架 Dubbo 等等。


为什么这么火,是有原因的。


Netty 的优点可以总结如下:


1、API 使用简单,开发门槛低;


2、功能强大,预置了多种编解码功能,支持多种主流协议;


3、定制能力强,可以通过 ChannelHandler 对通信框架进行灵活地扩展;


4、性能高,通过与其他业界主流的 NIO 框架对比,Netty 的综合性能最优;


5、成熟、稳定,Netty 修复了已经发现的所有 JDK NIO BUG,业务开发人员不需要再为 NIO 的 BUG 而烦恼;


6、社区活跃,版本迭代周期短,发现的 BUG 可以被及时修复,同时,更多的新功能会加入;


7、经历了大规模的商业应用考验,质量得到验证。在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它已经完全能够满足不同行业的商业应用了。

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
基于Java NIO框架区别对比,spring教程下载