Netty源码面试解析实战(一)- 引导篇
Netty,一款用于创建高性能网络应用程序的高级框架,由其德国老爹 Trustin Lee
在 2008 年提交第一个commit至今,转眼间已经走过了十二年。
Netty 本身是基于 Java 的 NIO 封装而成的框架。我们知道,熟练的使用框架进行开发,只是学习刚入了框架的门。现如今,处于 Java 诸神之战年代,唯有深入框架源码,对每个设计点都了如指掌,才算得上精通该框架。
异步和事件驱动
使用 Netty 比直接使用底层的 Java API 容易得多
自带编解码器解决拆包粘包等问题
reactor线程模型,支撑高并发连接
自带各种协议栈
3.1
设计
支持多种传输类型的统一的 API,阻塞和非阻塞的
简单而强大的线程模型
真正的无连接的数据报套接字支持
链接逻辑组件以支持复用
3.2
易用
翔实的 Javadoc 和示例
一般只需要 JDK 1.6 的依赖
3.3
性能
拥有比Java原生API更高的吞吐量及更低的延迟
得益于池化和复用,更低的资源消耗
减少内存复制
3.4
健壮
不会因慢速、快速、超载的连接产生OOM
消除NIO 在高速网络应用中的不公平的读/写比
3.5
安全
完整的 SSL / TLS 和 StartTLS 的支持
可运行在受限的环境,如 Applet 或 OSGI
3.6
生态
社区发布快速且频繁
国际大公司,如Apple、Twitter、Facebook、Google、Square和Instagram
流行开源项目,如Infinispan、HornetQ、Vert.x、Apache Cassandra和Elasticsearch,Spark,核心代码都利用了Netty的网络抽象。
扫描二维码更精彩
往期推荐