Netty系列・高级篇Netty核心源码解析

Posted 步尔斯特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty系列・高级篇Netty核心源码解析相关的知识,希望对你有一定的参考价值。

文章目录

1 启动剖析

我们就来看看 netty 中对下面的代码是怎样进行处理的

//1 netty 中使用 NioEventLoopGroup (简称 nio boss 线程)来封装线程和 selector
Selector selector = Selector.open(); 

//2 创建 NioserverSocketChannel,同时会初始化它关联的 handler,以及为原生 ssc 存储 config
NioS

Netty源码面试解析实战- 引导篇


1
简介


Netty,一款用于创建高性能网络应用程序的高级框架,由其德国老爹 Trustin Lee


在 2008 年提交第一个commit至今,转眼间已经走过了十二年。
Netty源码面试解析实战(一)- 引导篇
Netty 本身是基于 Java 的 NIO 封装而成的框架。我们知道,熟练的使用框架进行开发,只是学习刚入了框架的门。现如今,处于 Java 诸神之战年代,唯有深入框架源码,对每个设计点都了如指掌,才算得上精通该框架。


2
所谓 Netty
  • 异步和事件驱动

  • 使用 Netty 比直接使用底层的 Java API 容易得多

  • 自带编解码器解决拆包粘包等问题

  • reactor线程模型,支撑高并发连接

  • 自带各种协议栈


3
Netty 的特点


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


 生态


  • 社区发布快速且频繁


4
谁在使用 Netty


国际大公司,如Apple、Twitter、Facebook、Google、Square和Instagram

流行开源项目,如Infinispan、HornetQ、Vert.x、Apache Cassandra和Elasticsearch,Spark,核心代码都利用了Netty的网络抽象。


Netty源码面试解析实战(一)- 引导篇
Netty源码面试解析实战(一)- 引导篇

扫描二维码更精彩

Netty源码面试解析实战(一)- 引导篇
Netty源码面试解析实战(一)- 引导篇


往期推荐



点击下方“阅读全文”了解更多
好看的人才能点


以上是关于Netty系列・高级篇Netty核心源码解析的主要内容,如果未能解决你的问题,请参考以下文章

大数据成神之路-Netty(源码解析篇)

Netty源码解析Netty核心源码和高并发高性能架构设计精髓

Netty 核心源码解读 —— ServerBootstrap 篇

Netty核心源码分析

Netty系列二Netty原理篇

Netty4.x实战专题案例文章列表