2021SC@SDUSC
学习目标:
在接下来的一个学期内,学习并且阅读netty框架,坚持每个礼拜至少发一篇学习博客。
netty是一个高性能,异步事件驱动的NIO框架,基于Java NIO实现。提供了对TCP、UDP、文件传输的实现。同时,作为一个NIO异步的框架,netty的所有操作都是异步非阻塞的,即,IO操作不反悔结果,用户通过Future或Promise来获取执行的结果。
另外,netty通过多路复用技术,减少了线程的创建和维护的开销,性能相比传统的Socket编程会更高。
通过netty,可以轻松开发网络应用程序,例如服务端与客户端协议等。
下图为netty架构组成,来源于网络。
学习内容:
1、学习netty服务器启动过程中,代码执行的细节,包括NioEventLoopGroup、
ServerBootStrap的创建过程。
2、使用netty编写服务端和客户端代码,实现服务端和客户端的双向通信,并逐步完善。
3、了解编解码和netty提供的编解码器,总结各种编解码其的应用场景和实例demo。
系统安装:
netty的源码可以直接从github上下载,我安装的版本是4.1.69.Final-SNAPSHOT,同时,下载到本地后,会发现netty项目有多处出错,在尝试执行example包下的文件后,发现是io.util.collevtion包不存在。
经过查询后,发现这个类存在于templates文件夹里面,需要编译。
解决方法是,进入控制台,输入mvn clean compile -Dcheckstyle.skip=true即可。