首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Netty源码学习
Emanon
创建于2023-07-13
订阅专栏
Netty学习与源码阅读笔记
等 32 人订阅
共34篇文章
创建于2023-07-13
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
34.Netty源码之Netty如何处理网络请求
通过前面两节源码课程的学习,我们知道 Netty 在服务端启动时会为创建 NioServerSocketChannel,当客户端新连接接入时又会创建 NioSocketChannel
33.Netty源码之读写数据
写:写数据到一个 buffer,把 buffer 里的数据发送 读:多路复用器Selector接收OP_REA事件,处理OP_READ事件,分配一个初始1024字节的byte buffer来接受数据。
32.Netty源码之服务端如何处理客户端新建连接
Netty 服务端完全启动后,就可以对外工作了。接下来 Netty 服务端是如何处理客户端新建连接的呢?主要分为四步。
31.Netty源码之客户端启动流程
客户端启动主要流程 如果看了服务器端的启动流程,这里简单看下就可以了。服务端启动流程和客户端启动流程相似。分为3个步骤:创建、初始化、注册
30.Netty源码服务端启动主要流程
1.创建 selector 2.创建 server socket channel 3.初始化 server socket channel等
29.Netty源码之服务端启动:创建EventLoop&Selector流程
源码篇:从 Linux 出发深入剖析服务端启动流程 通过前几章课程的学习,我们已经对 Netty 的技术思想和基本原理有了初步的认识,从今天这节课开始我们将正式进入Netty 核心源码的学习。
28.Netty源码之缓存一致性协议
MESI协议只能保证并发编程中的可见性,并未解决原子性和有序性的问题,所以只靠MESI协议是无法完全解决多线程中的所有问题。
27.Netty源码之FastThreadLocal
FTL在定位数据时可根据下标获取,原生TL数据较多时容易发生哈希冲突且线性探测法效率低下。原生TL使用不当可能造成内存泄漏,FTLT会在run方法执行完毕后自动清理FTL。
26.Netty源码之ThreadLocal
如果你需要变量在多线程之间隔离,或者在同线程内的类和方法中共享,那么 ThreadLocal 大显身手的时候就到了。ThreadLocal 可以理解为线程本地变量在Java 并发编程中非常重要。
25.Netty源码之零拷贝
零拷贝是一个耳熟能详的词语,在 Linux、Kafka、RocketMQ 等知名的产品中都有使用,通常用于提升 I/O 性能。
24.Netty源码之合理管理堆内存
堆外内存是一把双刃剑,在网络 I/O、文件读写、分布式缓存等领域使用堆外内存都更加简单、高效,此外使用堆外内存不受 JVM 约束,可以避免 JVM GC 的压力,降低对业务应用的影响。下没有免费
23.Netty源码之内置解码器
Netty 提供了很多开箱即用的解码器,这些解码器基本覆盖了 TCP 拆包/粘包的通用解决方案。本节课我们将对 Netty 常用的解码器进行讲解,一起探索下它们有哪些用法和技巧。
22.Netty源码之解码器
Netty中编解码器分为一次编解码和二次编解码。以解码为例,一次解码器用于解决TCP拆包/粘包问题,解析得到字节数据。如果需要对解析后的字节数据做对象转换,需要使用二次解码器。同理,编码器是相反过程。
21.Netty源码之编码器
Netty中编解码器分为一次编解码和二次编解码。以解码为例,一次解码器用于解决TCP拆包/粘包问题,解析得到字节数据。如果需要对解析后的字节数据做对象转换,需要使用二次解码器。同理,编码器是相反过程。
20.Netty源码之通用协议
协议是通信双方事先商量好的接口暗语,在TCP网络编程中,发送方和接收方的数据包格式都是二进制,发送方将对象转化成二进制流发送给接收方,接收方获得二进制数据后需要知道如何解析成对象,所以协议是通信基础。
19.Netty源码之粘包/拆包
TCP传输协议是面向流的,是流式协议,没有数据包界限。客户端向服务端发送数据时,可能将一个完整的报文拆分成多个小报文进行发送,也可能将多个报文合并成一个大的报文进行发送。因此就有了拆包和粘包。
18.Netty源码之ByteBuf 详解
ByteBuf 是 Netty 的数据容器,所有网络通信中字节流的传输都是通过 ByteBuf 完成的。ByteBuf是数据传输的载体,其重要性不言而喻。
1.7Netty源码之writeAndFlush处理流程剖析
客户端向服务端发请求或服务端向客户端响应都属于出站处理器ChannelOutboundHandler的行为,所以当我们调用 writeAndFlush时,数据一定会在Pipeline中传播。
16.Netty源码之ChannelPipeline
EventLoop是Netty的调度中心负责监听多种事件,但是实际的业务处理逻辑则是由 ChannelPipeline 中所定义的 ChannelHandler 完成的。
15.Netty源码之EventLoop
EventLoop是Reactor 线程模型的事件处理引擎。每个EventLoop 线程都维护一个选择器和任务队列。它主要负责处理处理 I/O 事件、普通任务和定时任务。
下一页