瓮投网 > 杂谈 > 正文

​Netty知识点,Netty知识图谱,全面解读

2024-07-20 19:44 来源:瓮透网 点击:

Netty知识点,Netty知识图谱,全面解读

在实际的网络开发中,其实很少使用Java NIO原生的API。主要有以下原因:

原生API使用单线程模型,不能很好利用多核优势,如果自己去写多线程结合起来比较麻烦;

原生API是直接使用的IO数据,没有做任何封装处理,对数据的编解码、TCP的粘包和拆包、客户端断连、网络的可靠性和安全性方面没有做处理;

在《Netty权威指南》这本书里提到一个真实的故事,两个项目团队都要做基于NIO非阻塞特性的一个高性能、异步和高可靠性的底层通信框架,但一个团队选择了基于Java NIO API从头开发,另一个团队选择了基于Netty开发。最终,从头开发的团队遇到了各种各样的问题,导致项目延迟,而基于Netty开发的团队则进展顺利。

其实网络开发是一个比较复杂的事情,因为网络的不稳定性,通常会遇到各种各样的问题,比如前面提到的客户端突然断连、TCP的拆包和沾包等等。

幸运的是,网络上已经有了这么一个成熟的框架帮我们处理了这些事情,这个框架就是Netty。Netty主要应用于以下领域: