Netty框架源码探究
文章平均质量分 92
Netty
Binary Oracle
一名热爱开源和技术的Coder , 开源框架spring committer , golang开源网络库netpoll committer; (脱产备战25考研中,停更一年)
展开
-
FastThreadLocal 快在哪里 ?
FastThreadLocal 快在哪里 ?原创 2023-10-07 22:07:36 · 473 阅读 · 0 评论 -
详细图解Netty Reactor启动全流程 | 万字长文 | 多图预警
/JDK NIO原生Selectable Channel// Channel监听事件集合 这里是SelectionKey.OP_ACCEPT事件try {//设置Channel为非阻塞 配合IO多路复用模型.............省略................}}}封装由创建出来的JDK NIO原生。封装Channel在创建时指定感兴趣的IO事件,对于来说感兴趣的IO事件为OP_ACCEPT事件。设置JDK NIO原生为非阻塞模式, 配合IO多路复用模型。转载 2022-09-26 18:29:54 · 183 阅读 · 0 评论 -
聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)
本文介绍了首先介绍了Netty对各种IO模型的支持以及如何轻松切换各种IO模型。还花了大量的篇幅介绍Netty服务端的核心引擎主从Reactor线程组的创建过程。在这个过程中,我们还提到了Netty对各种细节进行的优化,展现了Netty对性能极致的追求。好了,Netty服务端的骨架已经搭好,剩下的事情就该绑定端口地址然后接收连接了,我们下篇文章再见~~~转载 2022-09-25 17:59:56 · 108 阅读 · 0 评论 -
聊聊Netty那些事儿之从内核角度看IO模型
当我们熟悉了select的原理后,就很容易理解内核给我们提供的select API了。从select API中我们可以看到,select系统调用是在规定的超时时间内,监听(轮询)用户感兴趣的文件描述符集合上的可读,可写,异常三类事件。select传递给内核监听的文件描述符集合中数值最大的文件描述符+1,目的是用于限定内核遍历范围。select监听的文件描述符集合为,那么maxfdp1的值为5。对可读事件感兴趣的文件描述符集合。对可写事件感兴趣的文件描述符集合。对异常事件感兴趣的文件描述符集合。转载 2022-09-23 13:06:43 · 161 阅读 · 0 评论 -
Netty网络编程第五卷
Netty网络编程第五卷NioEventLoop 剖析1.Selector何时创建2.eventLoop为何有两个selector成员变量3. eventloop的nio线程在何时启动4. 提交普通任务会不会结束select阻塞原本只打算写四卷,结果第四卷结尾只分析到了netty启动初始化部分的源码,特开第五卷将netty剩余重点部分源码分析完毕NioEventLoop 剖析学习NioEventLoop之前,先要搞清楚NioEventLoop的重要组成是:Selector,线程,任务队列;原创 2022-01-28 12:09:13 · 573 阅读 · 6 评论 -
Netty网络编程第七卷
Netty网络编程第七卷Netty的高性能之道传统RPC调用性能差的三宗罪高性能的三个主题Netty的高性能之道详解异步非阻塞通信零拷贝内存池高效的Reactor线程模型无锁化的串行设计理念高效的并发编程高性能的序列化框架灵活的TCP参数配置能力实现心跳机制、断线重连机制为何需要心跳机制?如何用Netty实现心跳机制?使用IdleStateHandler实现心跳(客户端篇)使用IdleStateHandler实现心跳(服务端篇)运行测试如何用Netty实现网络断线重连机制?实现思路代码实现运行测试源码剖析I原创 2022-01-29 11:24:31 · 1398 阅读 · 0 评论 -
Netty网络编程第六卷
Netty网络编程第六卷IO模型互联网服务端处理网络请求的原理“I/O 模型”的基本认识I/O模型1:阻塞式 I/O 模型(blocking I/O)I/O模型2:非阻塞式 I/O 模型(non-blocking I/O)I/O模型3:I/O 复用模型(I/O multiplexing)I/O模型4:信号驱动式 I/O 模型(signal-driven I/O)I/O模型5:异步 I/O 模型(即AIO,全称asynchronous I/O)线程模型【事件驱动模型】线程模型1:传统阻塞 I/O 服务模型线程原创 2022-01-28 21:19:29 · 140 阅读 · 0 评论 -
Netty网络编程第二卷
Netty网络编程第二卷二. Netty 入门1. 概述1.1 Netty 是什么?1.2 Netty 的作者1.3 Netty 的地位1.4 Netty 的优势2. Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理???? 提示3. 组件3.1 EventLoop普通任务和定时任务线程池默认大小???? 优雅关闭演示 NioEventLoop 处理 io 事件细分group组按照工作耗时再进行细分???? handler 执行中如何换人?演示 NioEventLoop 处理原创 2022-01-19 15:20:21 · 883 阅读 · 0 评论 -
Netty网络编程第九卷
Netty网络编程第九卷Future 和 Promise关键流程学习Netty 故障定位技巧接收不到消息内存泄漏性能问题Netty生产级的心跳和重连机制经典案例分享本卷不出意外,应该是收尾之卷了,主要再补充一下前面没讲漏掉的知识点Future 和 Promise在 Netty 中,所有的 I/O 操作都是异步的,这意味着任何 I/O 调用都会立即返回,而不是像传统 BIO 那样同步等待操作完成。异步操作会带来一个问题:调用者如何获取异步操作的结果?ChannelFuture 就是为了解决这个原创 2022-01-29 16:35:33 · 894 阅读 · 0 评论 -
Netty网络编程第一卷
Netty第一章原创 2022-01-17 16:44:35 · 609 阅读 · 0 评论 -
Funning things of netty
Funning things of nettyNetty 死锁异常 BlockingOperationExceptionNetty 死锁异常 BlockingOperationException分析 Netty 死锁异常 BlockingOperationException原创 2022-01-18 22:20:25 · 116 阅读 · 0 评论 -
Netty网络编程第四卷
Netty网络编程第四卷四. 优化与源码1. 优化1.1 扩展序列化算法1.2 参数调优1)CONNECT_TIMEOUT_MILLIS2)SO_BACKLOG3)ulimit -n4)TCP_NODELAY5)SO_SNDBUF & SO_RCVBUF6)ALLOCATOR7)RCVBUF_ALLOCATOR1.3 RPC 框架1)准备工作2)服务器 handler3)客户端代码第一版4)客户端 handler 第一版5)客户端代码 第二版6)客户端 handler 第二版思路整理gitee仓库r原创 2022-01-26 15:25:40 · 630 阅读 · 0 评论 -
Netty网络编程第八卷
Netty网络编程第八卷整体架构ByteBufChannelEventLoop和EventLoopGroupChannelFutureChannelHandler和ChannelPipelineSimpleChannelInboundHandler关于入站和出站处理器是如何识别的问题BootStrap本卷在于对ChannelHandler,ChannelHandlerContext,ChannelPipeline三大组件的详细讲解,力争做到从架构到源码的深入剖析整体架构Netty整体由以下几大原创 2022-01-29 15:40:35 · 1721 阅读 · 0 评论 -
Netty网络编程第三卷
Netty网络编程第三卷原创 2022-01-24 14:27:25 · 674 阅读 · 0 评论