netty源码解析
文章平均质量分 93
wangjianxin199003
这个作者很懒,什么都没留下…
展开
-
Netty源码深度解析-ByteBuf(1) ByteBuf简介
ByteBuf主要api有read/write,get/set,slice,duplicate,copy等系列方法。实现类上主要分为Unpooled和Pooled,并且支持分配HeapByteBuf及DirectByteBuf。原创 2022-02-23 08:32:27 · 799 阅读 · 0 评论 -
Netty源码深度解析-服务端新连接接入
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码本文本文简要地介绍服务端新连接的接入过程,逻辑比较简单,主要功能在NioMessageUnsafe和ServerBootsrapAcceptor中。1 服务端的启动过程1.1 两个EventLoopGroup我们在“服务端的启动过程”这篇文章中看到过ServerBootstrap在启动时需要传入两个EventLoop,一个叫b原创 2021-07-27 20:34:15 · 176 阅读 · 0 评论 -
Netty源码深度解析-Pipeline(2) 以客户端为例分析Pipeline工作原理
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码在"Pipeline的构造"这一节中我们已经讲过了,Pipeline中利用了责任链模式,而发挥责任链功能的数据结构就是由多个HandlerContext构成的的双向链表,而每一个HandlerContext又对应一个ChannelHandler(组合模式或者继承)。由于每一个HandlerContext对应一个ChannelHandl原创 2021-07-23 21:03:23 · 348 阅读 · 0 评论 -
Netty源码深度解析-Pipeline(1) Pipeline的构造
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码Pipeline这个词翻译过来就是“流水线”的意思,读到这里有了解过设计模式的同学应该已经想到了,这里用到的是“责任链模式”。本文我们将以DefaultChannelPipeline为例看一下Pipeline的构造以及其中重要的数据结构。1 和Pipeline相关的其他组件1.1 ChannnelHandler这是Channel原创 2021-06-02 20:13:57 · 345 阅读 · 0 评论 -
Netty源码深度解析-EventLoop(2)EventLoop的工作原理
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码EventLoop在netty中发挥着驱动引擎的作用,本文我们以NioEventLoop为例分析一下EventLoop的工作原理。1 EventLoop线程的创建时机还记得我们在“服务端启动”和“客户端启动”这两篇文章中都有一个重要操作吗?就是将Channel注册到EventLoop上。我们看AbstractChannel的reg原创 2021-05-21 08:41:42 · 285 阅读 · 0 评论 -
Netty源码深度解析-EventLoop(1)EventLoop的构造
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码EventLoop在netty中发挥着驱动引擎的作用,本文我们以NioEventLoopGroup和NioEventLoop为例着重分析一下EventLoopGroup和EventLoop的创建、一些重要的数据结构和netty的一些优化。1 NioEventLoopGroup咱们以NioEventLoopGroup为例进行分析。N原创 2021-05-20 09:46:21 · 220 阅读 · 0 评论 -
netty源码深度解析-启动引导(2)客户端启动流程
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码在“BIO vs NIO”这篇文章中我们给出了使用jdk原生nio编写的客户端Hello World。还记得其中的关键步骤吗,咱们再来温习一下。创建一个SocketChannel连接到服务方端口将SocketChannel设置为非阻塞的将SocketChannel注册到selector上今天我们就以这几个原创 2021-05-11 08:53:18 · 186 阅读 · 0 评论 -
netty源码解析-启动引导(1) 服务端启动流程
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis本文所使用的netty版本4.1.6.Final:带注释的netty源码我们在“BIO vs NIO”这篇文件中我们给出了使用jdk原生nio编写的服务端Hello World。还记得其中的关键步骤吗,咱们再来温习一下。创建一个ServerSocketChannel将ServerSocketChannel设置为非阻塞的将ServerSocketChannel绑定到8000端口将Se原创 2021-04-27 17:22:26 · 172 阅读 · 0 评论 -
netty源码解析-前言(3)netty整体架构
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis两篇开胃小菜过后,我已经有一些粉丝了,还有一些粉丝加了我的好友,有粉丝通过微信对我的文章表示了肯定,在此表示感谢。哈喽,大佬好,您的公众号文章写的很细致,质量很好,希望以后能向您学习,沟通交流我也是从一个netty小白开始学习的,在学习中也遇到过很多困惑和难点。我尽量用比较通俗易懂的语言来写文章(话说比较高档的词汇我也不会),咱们像讲故事一样,一点点地讲netty。曾经我遇到过的困惑,后来怎么理解的原创 2021-04-23 08:52:56 · 189 阅读 · 1 评论 -
netty源码解析-前言(2)为什么用netty
导读原创文章,转载请注明出处。本文源码地址:netty-source-code-analysis为什么用netty?因为dubbo、sofa-rpc、rocketMQ、jetty等知名的的项目都在用,就是这么简单。平时我们在遇到技术难题的时候,第1个想法是什么呢:看看别人怎么搞的。我们在和同事争论技术方案的时候,最常说的一句话是什么:XXX(某知名框架/某知名公司)也是这么做的。思路没问题,看看别人怎么做的,尤其是知名权威的项目/公司是怎么做的,借鉴一下,这是最快速的解决问题的方式。1 用netty原创 2021-04-23 08:50:37 · 90 阅读 · 0 评论 -
netty源码解析-前言(1) BIO vs NIO
使用过java的同学想必对BIO和NIO这两个词汇并不陌生,即便平时工作中没有接触过,也会在招聘需求里见过,或者面试被问到过。那么BIO和NIO到底表示什么意思呢,BIO即blocking io,NIO有的解释为new io,有的解释为none blocking io,个人认为none blocking io更为准确,至于为什么,咱们接下来看。原创 2021-04-23 08:47:10 · 133 阅读 · 1 评论