这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
什么是Netty?
概念上:
Netty 是一个异步事件驱动的网络应用程序框架 作用:用于快速开发可维护的高性能协议服务器和客户端。
- 异步事件驱动的概念:可以分为两部分,异步+事件驱动; 异步:顾名思义,当我们发出一个请求后,无需等待该请求对应的答复,可以先去做其它的; 事件驱动:由外部事件来触发操作,比如我们写完文章之后,点击发布的这个操作就是一次事件驱动;
内容上:
Netty 是一个 NIO 客户端服务器框架;
- 优点:快速轻松的开发网络应用程序,比如协议服务器; netty默认实现了dns、haproxy、http、http2、memcache、mqtt、redis、smtp、socks、stomp、xml等协议;通过使用Netty,能实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。
图片来源,若侵权则删除
拓展
Netty的被许多高性能作为socket基础:HornetQ Infinispan Vert.x
Play Framework Finangle和 Cassandra;
与Netty存在竞争关系的有:Grizzly、Apache Mina
Grizzly是一种应用程序框架,专门解决编写成千上万用户访问服务器时候产生的各种问题。使用JAVA NIO作为基础,并隐藏其编程的复杂性。容易使用的高性能的API。带来非阻塞socketd到协议处理层。利用高性能的缓冲和缓冲管理使用高性能的线程池。 Apache Mina是一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。
如何着手学习Netty?
接下来从Netty的架构、特性以及使用等几个方面来进行。