![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Netty
梦江河
聊聊高并发,数据库,存储
展开
-
Netty-监听读写事件
前言:监听读写事件是对于NioSocketChannel来说的,而NioSocketChannel和NioServerSocketChannel都对应NioEventLoop1、看NioEventLoop线程的loop方法,NioEventLoop的run()方法2、3、4、5、6、最后:6就是NioSocketChannel每次监听读事件的地方,随后会调用响应的pipeline。...原创 2020-09-26 21:25:47 · 735 阅读 · 0 评论 -
Netty-监听新连接接入
1、NioServerSocketChannel所在EventLoop线程Loop是NioEventLoop的run()方法2、3、4、5、6、7、8、最后:注册过程和NioServerSocketChannel的相同,区别是NioSocketChannel的第一次注册会开启一个EventLoop线程,之后的不开启。...原创 2020-09-26 20:23:15 · 793 阅读 · 0 评论 -
Netty-服务端启动流程-文字
newChannel初始化jdk底层的ServerSocketChannel,并封装到Netty的Channel上initChannel初始化1的Channel,主要是设置id,unsafe,channelPipelineregisterChannnel注册channel到jdk底层的Selector,并开启所在的EventLoop线程4、doBind对channel底层的socket完成端口绑定,并添加感兴趣的事件Accept...原创 2020-09-25 20:40:02 · 87 阅读 · 0 评论 -
Netty-Channel注册到Selector
1、2、3、4、5、6、7、到此真相大白原创 2020-09-25 19:39:46 · 330 阅读 · 0 评论 -
Netty-吐槽代码-注册channel
这段代码是初始化并注册NioServerSocketChannel,其中红色部分是实现注册的代码,功能是注册channel到parentGroup中,因为此方法属于AbstractBootstrap,而parentGroup就在本类中而parentGroup已经在ServerBootstrap.group(EventLoopGroup parentGroup, EventLoopGroup childGroup)进行了初始化,为什么不直接获取呢?至少现在我看来是一段垃圾代码吧。有知道的小伙伴留言一下.原创 2020-09-25 16:30:45 · 572 阅读 · 0 评论 -
Netty-parentGroup线程启动时刻
前言:其实掌握Netty的源码不难,关键是掌握几个点,本文介绍其中一个,parentGroup线程在哪启动?流程1:AbstractChannel.register(EventLoop eventLoop, final ChannelPromise promise)方法流程2:SingleThreadEventExecutor.execute(Runnable task)方法流程3:SingleThreadEventExecutor.startThread()方法流程4:SingleThrea原创 2020-09-25 10:57:40 · 528 阅读 · 1 评论 -
Netty-Reactor线程接入原理
原理一个EventLoopGroup是一个Reacctor线程池,负责调度和执行客户端接入、网络读写事件处理、用户自定义任务、定时任务parentGroup负责客户端的接入childGroup负责上面其余的三个parentGroup一般只有一个线程,创建NioServerSocketChannel后创建NioServerSocketChannel的ChannelPipeline,ChannelPipeline包括一系列的ChannelHandler,因为是单线程处理parentGroup的Sel.原创 2020-09-24 11:05:06 · 165 阅读 · 0 评论 -
TCP参数-backlog
原创 2020-09-23 21:55:44 · 184 阅读 · 0 评论 -
Netty-实现RPC
Netty实现RPC简直不要那么简单,只需要用户实现相应的序列化、反序列化和tcp拆包粘包问题就行步骤:定义服务接口和实现服务接口定义RPC请求实体和响应实体选择序列化框架定义通信协议,解决tcp拆包粘包问题定义RPC服务端和RPC客户端,Netty实现步骤1:服务接口public interface CalculatorService { double add(double op1, double op2); double substract(double o原创 2020-09-22 20:07:32 · 256 阅读 · 0 评论