Netty学习之十一 —— 客户端创建原理讲解和源码分析

1、Netty 客户端创建时序图

 

1、用户线程创建 Bootstrap实例,通过 API 设置创建客户端相关的参数,异步发起客户端连接。

2、创建处理客户端连接、I/O 读写的 Reactor 线程组 NioEventLoopGroup。可以通过构造函数指定 I/O 线程的个数,默认为 CPU 内核数的 2 倍。

3、通过 Bootstrap 的 ChannelFactory 和用户指定的 Channel 类型创建用于客户端连接的 NioSocketChannel,它的功能类似于 JDK NIO 类库提供的 SocketChannel;

4、创建默认的 ChannelHandlerPipeline,用于调度和执行网络事件;

5、异步发起 TCP 连接,判断连接是否成功。如果成功,则直接将 NioSocketChannel 注册到多路复用器上,监听读操作位,用于数据包读取和消息发送;如果没有立即连接成功,则注册连接监听位到多路复用器,等待连接结果;

6、注册对应的网络监听状态位到多路复用器;

7、由多路复用器在 I/O 现场中轮询各 Channel,处理连接结果;

8、如果连接成功,设置Future 结果,发送连接成功事件,触发 ChannelPipeline 执行;

9、由 ChannelPipeline 调度执行系统和用户的 ChannelHandler,执行业务逻辑。

 

源码分析部分待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值