
Netty源码分析
文章平均质量分 81
netty
菜鸟+1024
这个作者很懒,什么都没留下…
展开
-
Netty源码分析之ByteBufAllocator
一、ByteBufAllocator前文分析可知ByteBufAllocator接口是ByteBuf的分配器,主要用来分配各种ByteBuf对象,本文将重点分析Allocator的分配过程。接口定义:package io.netty.buffer;public interface ByteBufAllocator { ByteBufAllocator DEFAULT = ByteBufUtil.DEFAULT_ALLOCATOR; ByteBuf buffer(); Byt原创 2021-11-02 15:25:23 · 462 阅读 · 0 评论 -
Netty源码分析之ByteBuf
一、Java中的Buffer对象我们知道Buffer是NIO底层的重要组件之一,netty沿用了NIO中的Buffer实现,并且进行了更进一步的封装,所以我们先来了解一下NIO中的Buffer。Buffer中有三个非常重要的属性,源码中的注解是这样描述的:capacity:表示一个buffer的容量,这个值一旦确定就不会被改变,类似于一位数组,数组长度一旦确认就不会在变。limit:表示,第一个元素不能被读或写的索引,并且不能大于capacity。position:是下一个能被读或写的元素索引。p原创 2021-10-27 10:31:46 · 355 阅读 · 0 评论 -
Netty源码分析之ChannelHandler
一、ChannelHandlerpublic interface ChannelHandler { void handlerAdded(ChannelHandlerContext var1) throws Exception; void handlerRemoved(ChannelHandlerContext var1) throws Exception; /** @deprecated */ @Deprecated void exceptionCaught(C原创 2021-07-12 16:40:54 · 488 阅读 · 0 评论 -
Netty源码分析之ChannelPipeline
一、ChannelPipelinepipeline意为管道、运输、传递,ChannelPipeline可意为channel的传输或者传递的管道。针对channel的分析我们可知,每一个channel都持有一个ChannelPipeline对象。原创 2021-07-05 10:22:48 · 138 阅读 · 0 评论 -
Netty源码分析之EventLoop
一、EventLoop从前文可知,EventLoop对应着一个线程实体,且通过EventLoopGroup来分配,像端口绑定、channel注册等工作都也是EventLoop来完成,并且一些任务的提交和调度都是通过EventLoop来实现。所以EventLoop在netty中扮演着非常重要的角色,本文就重点分析一下EventLoop每个功能。public interface EventLoop extends EventExecutor, EventLoopGroup { @Override原创 2021-05-26 15:10:42 · 393 阅读 · 1 评论 -
Netty源码分析之EventLoopGroup
一、EventLoopGroup前文分析中多次提到了EventLoopGroup这个实例,从第一节中的样例,boss和work参数,到channel的注册、端口绑定已经客服端请求、读写事件等都用到了group,本节就重点介绍一下EventLoopGroup这个接口。public interface EventLoopGroup extends EventExecutorGroup { EventLoop next(); ChannelFuture register(Channel var原创 2021-05-19 10:48:03 · 317 阅读 · 0 评论 -
Netty源码分析之接收请求
一、入口在第二节(Netty简单启动过程)中我们介绍了,netty的简单启动,我们知道端口绑定完成之后,就开始等待来自于客户端的请求,以及处理客户端的请求等一系列操作,现在让我们看看netty是怎么操作的?当我们回顾第二节中channel注册过程源码时可以发现有下边这段代码。 public final void register(EventLoop eventLoop, final ChannelPromise promise) { AbstractChannel.thi原创 2021-05-18 15:18:13 · 258 阅读 · 0 评论 -
Netty源码分析之Channel
一、Channel实例化在配置启动的时候,会传入channel参数,具体的参数值,根据客户自身需求自行传入(NIO、OIO还是Epoll)。在前一节中的initAndRegister方法中第一件事就是实例化channel。channel的实例化是通过ChannelFactory工厂通过反射调用实例化,本节分析取NioServerSocketChannel来分析整个实例化过程,看看Channel实例化过程需要做些什么工作。NioServerSocketChannel的构造方法 Selector原创 2021-05-13 14:57:27 · 142 阅读 · 0 评论 -
Netty简单启动过程
一、启动类启动类分为服务端和客户端两种,第一节中,netty通过ServerBootstrap启动类来启动服务端程序(客户端用Bootstrap),其它的都是通过参数设置来设置到启动类里:group():配置工作线程组channel():传入channel,是OIO还是NIO,这里需要跟group相对应。localAddress():传入绑定的地址、端口childHandler():具体业务逻辑是在handler中bind():端口的绑定从第一节中可知,端口绑定完成,服务就已经启动,系统就原创 2021-05-11 09:27:40 · 661 阅读 · 2 评论 -
初识Netty
一、什么是netty?原创 2021-04-23 16:16:09 · 143 阅读 · 0 评论