netty作为java异步并发的框架可以说在很多中间件和框架中都有用到
借用官网首页描述
Netty是一个异步事件驱动的网络应用程序框架
用于快速开发可维护的高性能协议服务器和客户端。
netty结构图
netty几个如下特点
- 从设计上
适用于多种传输类型,统一API
可以使用阻塞和非阻塞模式
基于灵活且可扩展的事件驱动模型,可以清晰地分离关注点
高度可定制的线程模型 - 单线程,一个或多个线程池
- 使用方便
- 性能高
吞吐量更高,延迟更低
减少资源消耗
最小化不必要的内存复制(支持堆外内存零拷贝)
- 安全性,增加SSL/TLS 和StartTLS
- 社区活跃,在GitHub仓库一直在更新
如果开发使用可以直接引入依赖使用
<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.30.Final</version>
</dependency>
作为学习,可以直接下载源码学习。netty项目源码中也提供了例子。
- 配置可调试的工程
netty4 用户手册
我们选择从github上直接拉去当前版本作为基础工程
git clone git@github.com:netty/netty.git
至此基本就可以开始探索了