
netty
文章平均质量分 81
学习netty
NaughtyBo
ctrl + c | ctrl + v
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty 如何自动探测内存泄露的发生
要想触发 Netty 的内存泄露探测机制需要同时满足以下五个条件:应用必须开启内存泄露探测功能。必须要等到 ByteBuf 被 GC 之后,内存泄露才能探测的到,如果 GC 一直没有触发,那么即使是 ByteBuf 没有任何强引用或者软引用了,内存泄露的探测也将无从谈起。当 GC 发生之后,必须是要等到下一次分配内存的时候,才会触发内存泄露的探测。如果没有内存申请的行为发生,那么内存泄露的探测也不会发生。Netty 并不会探测每一个 ByteBuf 的泄露情况,而是根据一定的采样间隔,进行采样探测。原创 2025-08-02 23:39:52 · 734 阅读 · 0 评论 -
谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc
原文链接:>>> 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc在之前的 Netty 系列中,笔者是以 4.1.56.Final 版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本 4.1.112.Final 对 Netty 的相关设计展开解析,之所以这么做的原因是 Netty 的内存池设计一直在不断地演进优化。在 4.1.52.Final 之前 Netty 内存池是基于 jemalloc3 的设计思想实现的,由于在该版本的实现中,内存规格的粒度设计原创 2025-08-02 23:31:53 · 826 阅读 · 0 评论 -
Netty如何高效接收网络数据?一文聊透ByteBuffer动态自适应扩缩容机制
本文介绍了Sub Reactor线程在处理OP_READ事件的整个过程。并深入剖析了AdaptiveRecvByteBufAllocator类动态调整ByteBuffer容量的原理。同时也介绍了Netty为什么会使用堆外内存来为ByteBuffer分配内存,并由此引出了Netty的内存池分配器PooledByteBufAllocator。原创 2025-07-21 23:37:35 · 647 阅读 · 0 评论 -
Reactor在Netty中的实现(创建篇)
原文链接:聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)在上篇文章**《聊聊Netty那些事儿之从内核角度看IO模型》**中我们花了大量的篇幅来从内核角度详细讲述了五种的演进过程以及的底层基石IO多路复用技术在内核中的实现原理。最后我们引出了netty中使用的主从Reactor IO线程模型。通过上篇文章的介绍,我们已经清楚了在IO调用的过程中内核帮我们搞了哪些事情,那么俗话说的好,netty在用户空间又帮我们搞了哪些事情?那么从本文开始,笔者将从源码角度来带大家看下上图中的在Net原创 2025-07-20 23:56:19 · 1015 阅读 · 0 评论 -
Netty是如何高效接收网络连接
本文的主角服务端NioServerSocketChannel的创建,初始化,绑定端口地址,向main reactor注册监听。原创 2025-07-20 23:33:10 · 818 阅读 · 0 评论 -
一文聊透Netty核心引擎Reactor的运转架构
本文花了大量的篇幅介绍了。原创 2025-07-20 23:29:20 · 835 阅读 · 0 评论 -
聊聊Netty那些事儿之从内核角度看IO模型
当我们熟悉了。原创 2025-07-20 23:23:58 · 947 阅读 · 0 评论 -
一文搞懂 Netty 发送数据全流程 | 你想知道的细节全在这里
原文链接:一文搞懂 Netty 发送数据全流程 | 你想知道的细节全在这里在《Netty如何高效接收网络数据》一文中,我们介绍了 Netty 的 SubReactor 处理网络数据读取的完整过程,当 Netty 为我们读取了网络请求数据,并且我们在自己的业务线程中完成了业务处理后,就需要将业务处理结果返回给客户端了,那么本文我们就来介绍下 SubReactor 如何处理网络数据发送的整个过程。我们都知道 Netty 是一款高性能的异步事件驱动的网络通讯框架,既然是网络通讯框架那么它主要做的事情就是:接收客原创 2025-07-20 22:57:55 · 984 阅读 · 0 评论 -
详细图解Netty Reactor启动全流程 | 万字长文 | 多图预警
/JDK NIO原生Selectable Channel// Channel监听事件集合 这里是SelectionKey.OP_ACCEPT事件try {//设置Channel为非阻塞 配合IO多路复用模型.............省略................封装由创建出来的JDK NIO原生。封装Channel在创建时指定感兴趣的IO事件,对于来说感兴趣的IO事件为OP_ACCEPT事件。设置JDK NIO原生为非阻塞模式, 配合IO多路复用模型。原创 2025-07-20 22:51:39 · 999 阅读 · 0 评论 -
一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径
一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径 - 原文链接,请看原文在前边的系列文章中,笔者为大家详细剖析了 Reactor 模型在 netty 中的创建,启动,运行,接收连接,接收数据,发送数据的完整流程,在详细剖析整个 Reactor 模型如何在 netty 中实现的过程里,我们或多或少的见到了 pipeline 的身影。Reactor启动后的结构.png比如在 Reactor 启动的过程中首先需要创建 NioServerSocketCha原创 2025-07-20 22:29:53 · 1054 阅读 · 0 评论 -
ByteBuf 体系的设计与实现
聊一聊 Netty 数据搬运工 ByteBuf 体系的设计与实现 - 原文链接 - 请看原文,ctrl + c & ctrl + vByteToMessageDecoder详解时光芿苒,岁月如梭,好久没有给大家更新 Netty 相关的文章了,在断更 Netty 的这段日子里,笔者一直在持续更新 Linux 内存管理相关的文章 ,目前为止,算是将 Linux 内存管理子系统相关的主干源码较为完整的给大家呈现了出来,同时也结识了很多喜欢内核的读者,经常在后台留言讨论一些代码的设计细节,在这个过程中,我们相互分享原创 2025-07-20 22:18:58 · 940 阅读 · 0 评论 -
ByteToMessageDecoder详解
ByteToMessageDecoder是netty中1个非常重要的解码器。因为tcp协议将数据以流的方式传输,但这样就需要自己在应用层手动解决字节数据边界的问题,即拆包和粘包的问题。将流式数据按照商定的协议规则区分的1个完整数据称为帧。原创 2025-07-16 23:55:09 · 690 阅读 · 0 评论 -
ChunkedWriteHandler
Netty源码分析-ChunkedFile和ChunkedWriteHandler原创 2025-07-07 00:12:41 · 125 阅读 · 0 评论 -
reactor模型学习&狂野netty
本文介绍了BIO(阻塞IO)和NIO(非阻塞IO)的网络编程实现。BIO通过ServerSocket和Socket实现客户端-服务器通信,采用一连接一线程模型,代码示例展示了服务器监听、客户端连接及数据传输过程。NIO部分则基于Channel和Selector实现非阻塞IO,但仅提供了服务器端的Channel创建流程框架,未展示完整交互实现。文章还提供了相关的学习资源链接,包括CSDN博客和B站视频,涉及Netty框架、Reactor模型等高性能网络编程内容。BIO实现简单但性能受限,NIO提供了更高性能原创 2025-06-15 00:24:51 · 1026 阅读 · 0 评论 -
Netty学习example示例(含官方示例代码)
【代码】Netty学习example示例。原创 2025-06-02 21:03:41 · 1148 阅读 · 0 评论 -
LG-Netty学习
Socket,套接字就是两台主机之间逻辑连接的端点。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议、本地主机的IP地址、本地进程的协议端口、远程主机的IP地址、远程进程的协议端口。维度阻塞(Blocking)非阻塞(Non-Blocking)线程行为挂起等待操作完成立即返回,可执行其他任务。原创 2025-05-24 09:00:08 · 467 阅读 · 0 评论 -
Netty启动源码&NioEventLoop剖析&accept剖析&read剖析&write剖析
入口关键代码(1、注意main线程和nio线程的切换; 2、initAndRegister 对应 nio中 创建ServerSocketChannel 和 把ServerSocketChannel注册到selector上 3、doBind0 对应 nio中 bind监听端口)// 1. 执行初始化和注册 regFuture 会由 initAndRegister 设置其是否完成,从而回调 3.2 处代码= null) {原创 2025-03-13 21:13:45 · 1286 阅读 · 0 评论 -
netty继承类图
原创 2024-04-21 12:14:47 · 193 阅读 · 0 评论 -
ByteToMessageDecoder&MessageToMessageDecoder&MessageToByteEncoder&MessageToMessageEncoder
ByteToMessageDecoder、MessageToMessageDecoder、MessageToByteEncoder、MessageToMessageEncoder原创 2024-04-20 20:23:51 · 458 阅读 · 0 评论 -
slice/retainedSlice/readRetainedSlice
【代码】slice/retainedSlice/readRetainedSlice。原创 2024-04-17 22:58:42 · 252 阅读 · 0 评论 -
netty实现mqtt(IOT)
springboot+netty+mqtt服务端实现springboot+netty+mqtt客户端实现IOT云平台 simple(6)springboot netty实现IOT云平台基本的架构(mqtt、Rabbitmq)Springboot结合Netty对接硬件,实现主动发送报文和接受硬件报文(ModbusRTU或者TCP以及DTU)原创 2024-04-11 22:18:15 · 1725 阅读 · 0 评论 -
telnet命令使用
启动netty服务端后,使用如下cmd命令连接服务端,按enter,将连接到netty服务端。发送消息,再断开连接,再退出,netty服务端都能正常响应。原创 2024-03-17 10:19:28 · 560 阅读 · 0 评论 -
netty草图笔记
【代码】netty草图笔记。原创 2024-03-09 17:14:38 · 455 阅读 · 0 评论 -
netty-daxin-5(eventLoop&pipeLine)
这时Netty中极其重要的一个类,必须掌握。原创 2023-12-20 21:49:17 · 390 阅读 · 0 评论 -
netty-daxin-4(http&websocket)
【代码】netty-daxin-4(http&websocket)原创 2023-12-17 00:13:04 · 1356 阅读 · 0 评论 -
netty-daxin-3(rpc远程调用)
【代码】netty-daxin-3(rpc远程调用)原创 2023-12-16 22:14:05 · 231 阅读 · 0 评论 -
netty-daxin-2(netty常用事件讲解)
在这种情况下,可以使用ChannelHandlerContext提供的AttributeKey来解决这个问题(如下所示),但是目前ChannelHandlerContext#attr和ChannelHandlerContext#hasAttr都被弃用了,推荐使用Channel#attr(AttributeKey)和Channel#hasAttr。它下面有2个子接口,并且它们都有对应的适配器类,并且还有1个复合的ChannelDuplexHandler类,用于处理入站io事件和出站io操作。原创 2023-12-16 22:12:43 · 179 阅读 · 0 评论 -
netty-daxin-1(ByteBuf & 编解码器)
【代码】netty。原创 2023-12-03 10:10:39 · 206 阅读 · 0 评论 -
Selector & SelectionKey基础学习
浅浅的学习一下Selector的默认规则。原创 2023-12-02 11:04:39 · 286 阅读 · 0 评论 -
netty websocket学习
42-Netty基础-Websocket-Netty握手源码分析 - B站视频 - 很详细43-FrameDecoder源码分析SpringBoot 整合 Netty + WebsocketSpring boot 项目(二十三)——用 Netty+Websocket实现聊天室springBoot + netty搭建高性能 websocket 服务 & 性能测试(包含python 测试脚本)springBoot使用webSocket的几种方式以及在高并发出现的问题及解决SpringBoot2+Netty原创 2023-11-27 22:02:20 · 611 阅读 · 0 评论 -
NIO 笔记(二)Netty框架专题
Netty并没有使用NIO中提供的ByteBuffer来进行数据装载,而是自行定义了一个ByteBuf类。那么这个类相比NIO中的ByteBuffer有什么不同之处呢?写操作完成后无需进行flip()翻转。具有比ByteBuffer更快的响应速度。动态扩容。...//index被分为了读和写,是两个指针在同时工作//mark操作也分两种//最大容量,没错,这玩意能动态扩容可以看到,读操作和写操作分别由两个指针在进行维护,每写入一次,向后移动一位,每读取一次,也是向后移动一位,当然。原创 2023-11-10 12:58:05 · 440 阅读 · 0 评论 -
NIO 笔记(一)基础内容
【笔记来自:it白马】NIO基础**注意:**推荐完成JavaSE篇、JavaWeb篇的学习再开启这一部分的学习,如果在这之前完成了JVM篇,那么看起来就会比较轻松了。在JavaSE的学习中,我们了解了如何使用IO进行数据传输,Java IO是阻塞的,如果在一次读写数据调用时数据还没有准备好,或者目前不可写,那么读写操作就会被阻塞直到数据准备好或目标可写为止。Java NIO则是非阻塞的,每一次数据读写调用都会立即返回,并将目前可读(或可写)的内容写入缓冲区或者从缓冲区中输出,即使当前没有可用数据,原创 2023-11-08 22:48:17 · 506 阅读 · 0 评论 -
BIO、NIO、AIO
在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通信性能的高要求,Java在2002年开始支持了非阻塞式的I/O通信技术(NIO)。大多数读者在学习网络通信相关技术的时候,都只是接触到零碎的通信技术点,没有完整的技术体系架构,以至于对于Java的通原创 2022-10-06 11:10:17 · 1602 阅读 · 2 评论 -
Netty学习(四)
注意发送的数据未必能够一次读完,因此会触发多次 nio read 事件,一次事件内会触发多次 pipeline read,一次事件会触发一次 pipeline read complete。SO_TIMEOUT 主要用在阻塞 IO,阻塞 IO 中 accept,read 等都是无限等待的,如果不希望永远阻塞,使用它调整超时时间。在 linux 2.2 之前,backlog 大小包括了两个队列的大小,在 2.2 之后,分别用下面两个参数来控制。主要任务是执行死循环,不断看有没有新任务,有没有 IO 事件。原创 2023-07-30 16:29:33 · 615 阅读 · 0 评论 -
Netty学习(三)
文章目录三. Netty 进阶1. 粘包与半包1.1 ==粘包==现象服务端代码客户端代码1.2 ==半包==现象服务端代码客户端代码1.3 现象分析粘包半包缘由滑动窗MSS 限制Nagle 算法1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度2. 协议设计与解析2.1 为什么需要协议?2.2 redis 协议举例2.3 http 协议举例2.4 自定义协议要素编解码器MessageCodecTestMessageCodec输出💡 什么时候可以加 @Sharable3. 聊原创 2023-07-28 22:04:15 · 605 阅读 · 0 评论 -
Netty学习(二)
二. Netty 入门1. 概述1.1 Netty 是什么?Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protocol servers & clients.Netty 是一个异步(netty并没有采用异步io,这里的异步指的是netty使用了多线程,来完成方法的调用和处理结果向分离)的、基原创 2023-07-27 21:45:00 · 685 阅读 · 0 评论 -
Netty学习(一)
文章目录一. NIO 基础1. 三大组件1.1 Channel & Buffer1.2 Selector多线程版设计多线程版缺点线程池版设计线程池版缺点selector 版设计2. ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构调试工具类示例2.3 ByteBuffer 常见方法分配空间 (allocate)HeapByteBuffer & DirectByteBuffer读写数据向 buffer 写入数据从 buffer 读取数据示例ma原创 2023-07-24 22:12:19 · 617 阅读 · 0 评论