谈谈我对学习Netty的看法

1,004 阅读2分钟

前言

有段时间没更新了,最近抽空整理学习了netty,话说几年前也尝试学习过Netty,但是要么就是半途而废,要么就是似懂非懂的撸过去,并没有系统性的消化netty。这次希望能通过我的学习整理把如何学习netty说明白,包括把操作系统相关的预备知识说明白,让新手学习Netty简单些。

Netty 是什么

Netty的定位是基于java语言构建高级网络应用的客户端/服务器框架,它是专注于网络编程的框架,重点在于网络编程。

Netty的前因后果

netty是专注于网络编程,那就得说到 TCP/IP协议和I/O模型了,注意这里说的是操作系统的I/O模型,还没有说到java的I/O模型,IO模型分为同步异步和阻塞非阻塞之分,netty高性能说到底就是利用了系统内核提供的多路复用特性,拿linux举例,就是select、epoll。然后刚好jdk在1.4后中使用了系统内核这个特性,从而有了nio,但是普通人直接用jdk哪些nio的api构建网络应用复杂度和难度都大了些,这才有了netty,专注于构建网络应用。

预备知识

大致知识脉络厘清后,就可以逐步开始我们的学习之旅了。我的建议分以下几步:

  • 什么是socket
  • tcp/ip协议深入了解
  • 操作系统I/O模型学习
  • 操作系统的进程调度
  • java I/O模型和网络编程学习
  • Netty学习

总结

以上预备知识有时需要翻越书籍查阅,《linux内核设计与实现》《Unix网络编程 卷1》《Netty实战》《Netty 权威指南》等,书籍可以通过添加公众号获取电子版。作者也会在后续推出相关文章,细化各个知识点。 喜欢本文的朋友们,欢迎长按下图关注订阅号"我的编程笔记",收看更多精彩内容~~