bin的技术小屋

其他

从 Linux 内核角度探秘 JDK NIO 文件读写本质

配置文件来对这些参数进行修改。这里我们先主要关注这些内核参数的含义以及源码实现,文章后面笔者有一个专门的章节来介绍这些内核参数各种不同的配置方式。dirty_writeback_centisecs
2022年9月5日
其他

一步一图带你深入剖析 JDK NIO ByteBuffer 在不同字节序下的设计与实现

}}5764大端序写入Buffer之后.png由于在大端模式下,二进制数据的高位是存放于字节数组中的低地址中,我们需要从字节数组中的低地址中依次读取二进制数据的高位出来。然后我们从高位开始依次组装
2022年8月11日
其他

一文聊透 Netty IO 事件的编排利器 pipeline | 详解所有 IO 事件的触发时机以及传播路径

//此时firstRegistration已经变为false,在pipeline.invokeHandlerAddedIfNeeded中已被调用过
2022年5月16日
其他

一文搞懂Netty发送数据全流程 | 你想知道的细节全在这里

//如果当前线程不是ChannelHandler指定的executor,则封装成异步任务提交给指定executor执行,注意这里的executor不一定是reactor线程。
2022年4月8日
其他

抓到Netty一个隐藏很深的内存泄露Bug | 详解Recycler对象池的精妙设计与实现

//用于指示当前回收线程是否继续为创建线程回收对象,所有回收线程都可以看到,这个值是所有回收线程共享的。以便可以保证所有回收线程回收的对象总量不能超过availableSharedCapacity
2022年3月18日
其他

重磅硬核 | 一文聊透对象在JVM中的内存布局,以及内存对齐和压缩指针的原理及应用

大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章?《从内核角度看IO模型的演变》,在这篇文章中我们通过图解的方式以一个C10k的问题为主线,从内核角度详细阐述了5种IO模型的演变过程,以及两种IO线程模型的介绍,最后引出了Netty的网络IO线程模型。读者朋友们后台留言都觉得非常的硬核,在大家的支持下这篇文章的目前阅读量为2038,点赞量为80,在看为32。这对于刚刚诞生一个多月的小号来说,是一种莫大的鼓励。在这里bin再次感谢大家的认可,鼓励和支持~~今天bin将再来为大家带来一篇硬核的技术文章,本文我们将从计算机组成原理的角度详细阐述对象在JVM内存中是如何布局的,以及什么是内存对齐,如果我们头比较铁,就是不进行内存对齐会造成什么样的后果,最后引出压缩指针的原理和应用。同时我们还介绍了在高并发场景下,False
2022年3月4日
其他

Netty如何高效接收网络数据?一文聊透ByteBuffer动态自适应扩缩容机制

loop循环最大读取次数可在启动配置类ServerBootstrap中通过ChannelOption.MAX_MESSAGES_PER_READ选项设置,默认为16。ServerBootstrap
2022年2月23日
其他

抓到Netty一个Bug,顺带来透彻地聊一下Netty是如何高效接收网络连接的

serverSocketChannel.accept()方法来接收完成三次握手的客户端连接NioSocketChannel的,并将接收到的客户端连接NioSocketChannel临时保存在List
2022年2月11日
其他

一文聊透Netty核心引擎Reactor的运转架构

大家还记不记得笔者在《聊聊Netty那些事儿之从内核角度看IO模型》一文中提到的,IO模型的演变是围绕着"如何用尽可能少的线程去管理尽可能多的连接"这一主题进行的。Netty的IO模型是通过JDK
2022年1月28日
其他

详细图解Netty Reactor启动全流程 | 万字长文 | 多图预警

,通过ServerBootstrap#channel方法配置。以及配置NioServerSocketChannel时用到的SocketOption。SocketOption用于设置底层JDK
2022年1月19日
其他

聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)

Reactor中处理,同时也能保证客户端SocketChannel上的IO处理的线程安全性。由于文章篇幅的关系,作为Reactor在netty中实现的第一篇我们主要来介绍主从Reactor
2022年1月13日
其他

聊聊Netty那些事儿之从内核角度看IO模型

从今天开始我们来聊聊Netty的那些事儿,我们都知道Netty是一个高性能异步事件驱动的网络框架。它的设计异常优雅简洁,扩展性高,稳定性强。拥有非常详细完整的用户文档。同时内置了很多非常有用的模块基本上做到了开箱即用,用户只需要编写短短几行代码,就可以快速构建出一个具有高吞吐,低延时,更少的资源消耗,高性能(非必要的内存拷贝最小化)等特征的高并发网络应用程序。本文我们来探讨下支持Netty具有高吞吐,低延时特征的基石----netty的网络IO模型。由Netty的网络IO模型开始,我们来正式揭开本系列Netty源码解析的序幕:网络包接收流程
2022年1月10日