目标
Netty 介绍
Netty架构图
Netty特性
Netty 本地环境搭建
Netty 本地Install
Netty介绍
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
Netty是一个异步事件驱动的网络应用程序框架,用户快速开发可维护的高性能协议服务器和客户端
Netty架构图
Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server.
'Quick and easy' doesn't mean that a resulting application will suffer from a maintainability or a performance issue. Netty has been designed carefully with the experiences earned from the implementation of a lot of protocols such as FTP, SMTP, HTTP, and various binary and text-based legacy protocols. As a result, Netty has succeeded to find a way to achieve ease of development, performance, stability, and flexibility without a compromise.
大概意思就是介绍Netty是一个NIO客户端服务器框架,可快速轻松开发网络应用程序,极大的简化了网络编程。
快速简便
并不意味着最终的应用程序将遭受可维护性或性能问题的困扰。Netty经过精心设计,结合了许多协议,最终成功找到一个无需妥协即可轻松实现开发,性能,稳定性和灵活性的方法。
Netty特征
设计
- 适用于各种传输类型的统一API-阻塞和非阻塞套接字
- 基于灵活且可扩展的事件模型,可将关注点明确分离
- 高度可定制的线程模型-单线程,一个或多个线程池,例如SEDA
- 真正的无连接数据报套接字支持(从3.1开始)
使用方便
记录良好的Javadoc,用户指南和示例
没有其他依赖关系,JDK 5(Netty 3.x)或6(Netty 4.x)就足够了
注意:某些组件(例如HTTP / 2)可能有更多要求。请参阅 需求页面 以获取更多信息。
性能
- 更高的吞吐量,更低的延迟
- 减少资源消耗
- 减少不必要的内存复制
安全
- 完整的SSL / TLS和StartTLS支持
Netty 本地环境搭建
- 从
Netty
的github repo fork 代码到自己仓库
- 将netty 源码clone到本地
git clone https://github.com/nuo-promise/netty.git
git checkout -b master
git fetch upstream
git reset --hard upstream/master
- 使用Idea打开netty源码
打开之后要过一会,因为netty需要查找依赖
Netty本地install
<pre class="cm-s-default" style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);"># 在Linux 终端 netty 的根目录下执行 mvn -B clean install -Dmaven.javadoc.skip=true -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests # 或者 idea 使用 mvn install,要是为了速度快 设置下 idea 的 maven 执行参数</pre>
- 然后执行 install
总结
Netty 源码解析准备工作已经完成,下面我们一起观摩Netty的三高实现原理吧。