DK/Dylan Blog
• 18 articles

Netty

Netty 网络编程学习笔记,从基础使用到底层原理,打磨高并发网络通信能力。 不太完整,完整可参考 https://www.yuque.com/guosgbin/netty

All Articles in Netty

MAR212022
源码分析Netty

Netty原理18:Netty发送数据流程及出站缓冲区

本文分析Netty写操作流程:write事件从TailContext向HeadContext传播,数据先写入ChannelOutboundBuffer出站缓冲区而非直接发往Socket;flush时才真正写入底层通道。writeAndFlush合并两次操作提高吞吐量。

21 min read
MAR162022
源码分析Netty

Netty原理17:Netty管道机制

本文分析Netty ChannelPipeline管道机制:Pipeline是双向链表结构,HeadContext和TailContext作为头尾节点,中间节点封装用户Handler。入站事件从头到尾传播,出站事件从尾到头传播,支持动态增删Handler。

13 min read
MAR102022
源码分析Netty

Netty原理14:服务端处理客户端的连接(ACCEPT)

本文分析服务端处理ACCEPT事件的流程:NioServerSocketChannel监听OP_ACCEPT事件,当客户端连接到来时由ServerBootstrapAcceptor处理器负责初始化客户端Channel,将其注册到workerGroup的EventLoop上并配置用户自定义Handler。

7 min read
MAR102022
源码分析Netty

Netty原理15:客户端处理READ事件概述

本文概述客户端READ事件处理流程入口:NioEventLoop#run检测到OP_READ就绪后调用unsafe.read(),进入NioByteUnsafe.read()方法,触发读循环从SocketChannel读取数据并传递给Pipeline中的Handler处理。

3 min read
MAR082022
源码分析Netty

Netty原理03:客户端启动流程

本文分析Netty客户端启动流程,与服务端类似但更简洁:创建线程组、配置Bootstrap对象(设置NioSocketChannel、Handler等)、反射创建Channel、绑定EventLoop、注册Selector、最后调用SocketChannel.connect连接服务端。

5 min read
MAR082022
源码分析Netty

Netty原理01:服务端启动流程

Netty服务端启动流程,包括创建bossGroup和workerGroup两个线程组、配置ServerBootstrap对象(设置Channel类型、选项参数、Handler等)、调用bind方法完成Channel创建与EventLoop绑定、注册到Selector、绑定端口及事件传播等核心步骤。

9 min read