在学习java的过程中,有很多零碎的知识点需要大家掌握,这样可以更好地进行程序开发,比如netty框架干什么的?那么今天我们就来给大家讲解一下netty框架的具体作用。
Netty是一个高性能 事件驱动、异步非堵塞的IO(NIO)Java开源框架,Jboss提供,用于建立TCP等底层的连接,基于Netty可以建立高性能的Http服务器,快速开发高性能、高可靠性的网络服务器和客户端程序。支持HTTP、 WebSocket 、Protobuf、 Binary TCP |和UDP,Netty已经被很多高性能项目作为其Socket底层基础,如HornetQ Infinispan Vert.x Play Framework Finangle和 Cassandra。其竞争对手是:Apache MINA和 Grizzly。
也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。
“快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
netty特点是什么?
1.高并发。通过Reactor模型基于NIO开发的网络通信框架。
2.传输快,零拷贝。Netty的接受和发送bytebuffer使用堆外直接内存进行socket读写,传统堆内存进行socket读写,JVM将堆内存buffer拷贝到内存,然后写入socket。相比之下,消息在发送多了一次缓冲区的内存拷贝。
Netty提供buffer,聚合多个bytebuffer。传统通过内存拷贝将多个小buffer合并大的buffer。
Netty文件传输使用transferto,直接将文件缓冲区的数据发送到目标channel。传统通过循环write导致内存拷贝。
3.使用简单。封装NIO,提供调用接口,功能强大,预置多种编解码功能,支持多种主流协议,通过channelhandler对通信框架扩展。
4.性能高。IO线程模型,内存零拷贝,内存池设计,串行化处理读写,高性能序列化协议。
5.稳定。修复所有NIO bug,epoll bug,导致selector空轮询,最终导致CPU100% 。
简单来说,netty是异步事件驱动的网络应用程序框架。使用Netty 可以确保你快速和简单的开发出一个网络应用,这对开发人员来说还是很实在的哦!最后大家如果想要了解更多java入门知识,敬请关注奇Q工具网。
推荐阅读: