Skip to content

spbreak/netty-in-action-hlx-01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

netty学习笔记

040301 Netty所提供的内置传输

image

040501 应用程序的最佳传输

image

050101 用户空间与内核空间

以32位操作系统, 最大寻址空间为4G的进程空间为例

image

CPU指令

image

如何从用户空间进入内核空间

image

应用程序如何读磁盘数据

image

Linux体系结构

image

直接缓冲区和非直接缓冲区

image

ByteBuf的三种使用模式

  1. 堆内存(非直接缓冲区)
  2. 堆外内存(直接缓冲区)
  3. 复合缓冲区 -- image

Java的ByteBuffer(流InputStream)单索引

Netty的ByteBuf双索引 image

Netty的discardReadByte与clear区别(clear并不会直接清空数据)

image

派生缓冲区(共享内部存储)

image

set/get

get() 和 set() 操作, 从给定的索引开始, 并且保持索引不变
read() 和 write() 操作, 从给定的索引开始, 并且会根据已经访问过的字节数对索引进行调整

Channel 生命周期

image

ChannelHandler 生命周期

image

在 ChannelHandler 被添加到 ChannelPipeline 中或者被从 ChannelPipeline 中移除时会调用这些操作
当某个 ChannelInboundHandler 的实现重写 channelRead() 方法时,
它将负责显式地释放与池化的 ByteBuf 实例相关的内存
-- ReferenceCountUtil.release()
SimpleChannelInboundHandler 会自动释放资源
所以不应该存储指向任何消息的引用供将来使用, 因为这些引用都将会失效

资源管理

class ResourceLeakDetector : 诊断潜在的 (资源泄漏) 问题

泄漏检测级别 image

修改netty泄漏检测级别
java -Dio.netty.leakDetectionLevel=ADVANCED

出站方向释放资源

image

修改ChannelPipeline

image

Channel/ChannelPipeline/ChannelHandler以及ChannelHandlerContext之间关系

image

通过 Channel 或者 ChannelPipeline 进行的事件传播

image

通过 ChannelHandlerContext 触发的操作的事件流

image

处理入站异常

image

处理出站异常

image

基本的线程池化模型

image

虽然池化和重用线程相对于简单地为每个任务都创建和销毁线程是一种进步,
但是它并不能消除由上下文切换所带来的开销, 其将随着线程数量的增加很快变得明显,
并且在高负载下愈演愈烈

Netty Reactor 线程模型

image

Netty EventLoop 实现原理

image

Netty EventLoop 事件处理机制

image

Netty EventLoopGroup

image

JDK 的任务调度API

image

使用 ScheduledExecutorService 在 60 秒的延迟之后执行一个任务

image

使用 EventLoop 调度任务

image

使用 ScheduledFuture 取消任务

image

EventLoop 的执行逻辑

image

非阻塞传输(如NIO和AIO)的EventLoop分配方式

image

阻塞传输(如OIO)的EventLoop分配方式

image

Netty 的 Bootstrap 引导类 引导客户端

image

Netty 的 Bootstrap 引导类 引导服务端

image

不同 Channel 间共享 EventLoop

image

Netty 的Channel和属性

image

Netty 的 关闭释放资源

image

sync与syncUninterruptibly

image

Netty 的 EmbeddedChannel

image

SSL/TLS 保护加密

image

HTTP 解码器/编码器和编解码器

image

image

WebSocket

image

空闲的连接和超时

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages