手把手教你调试Netty启动服务流程源码

简介: 手把手教你调试Netty启动服务流程源码

我们自己的线程,如果写在main 方法,那就是

main 线程

  • 在创建 NioEventLoopGroup(创建一组NioEventLoop) 的过程中就创建了 selector

image.png

image.png

  • 这里因为我们当前线程其实是 main 线程,所以为 false

image.png

  • 创建 ServerSocketChannel

image.png

  • 初始化 server socket channel
  • 给 server socket channel 从 boss group 选择一个 NioEventLoop

boss thread

  • 将 serverSocketChannel 注册到选择的 NioEventLoop 的 selector

image.png

  • 绑定地址启动

image.png

  • 注册接受连接事件(OP_ACCEPT) 到selector
  • 1.png
  • 第一次注册并非监听OP_ACCEPT,而是0

image.png

  • 最终监听的OP_ ACCEPT通过bind完成后的fireChannelActive()触发

image.png

NioEventLoop 是通过 Register 操作的执行来完成启动。


目录
相关文章
|
10月前
|
存储 缓存 NoSQL
跟着源码学IM(十一):一套基于Netty的分布式高可用IM详细设计与实现(有源码)
本文将要分享的是如何从零实现一套基于Netty框架的分布式高可用IM系统,它将支持长连接网关管理、单聊、群聊、聊天记录查询、离线消息存储、消息推送、心跳、分布式唯一ID、红包、消息同步等功能,并且还支持集群部署。
13150 1
|
3月前
|
编解码 安全 前端开发
Netty Review - StringEncoder字符串编码器和StringDecoder 解码器的使用与源码解读
Netty Review - StringEncoder字符串编码器和StringDecoder 解码器的使用与源码解读
44 0
|
4月前
|
消息中间件 Oracle Dubbo
Netty 源码共读(一)如何阅读JDK下sun包的源码
Netty 源码共读(一)如何阅读JDK下sun包的源码
43 1
|
4月前
|
NoSQL Java Redis
跟着源码学IM(十二):基于Netty打造一款高性能的IM即时通讯程序
关于Netty网络框架的内容,前面已经讲了两个章节,但总归来说难以真正掌握,毕竟只是对其中一个个组件进行讲解,很难让诸位将其串起来形成一条线,所以本章中则会结合实战案例,对Netty进行更深层次的学习与掌握,实战案例也并不难,一个非常朴素的IM聊天程序。 原本打算做个多人斗地主练习程序,但那需要织入过多的业务逻辑,因此一方面会带来不必要的理解难度,让案例更为复杂化,另一方面代码量也会偏多,所以最终依旧选择实现基本的IM聊天程序,既简单,又能加深对Netty的理解。
85 1
|
6月前
|
分布式计算 网络协议 前端开发
【Netty底层数据交互源码】
【Netty底层数据交互源码】
|
6月前
|
Java 容器
【深入研究NIO与Netty线程模型的源码】
【深入研究NIO与Netty线程模型的源码】
|
10月前
|
编解码 弹性计算 缓存
Netty源码和Reactor模型
Netty源码和Reactor模型
67 0
|
消息中间件 缓存 网络协议
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
|
消息中间件 缓存 安全
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
【Netty 从成神到升仙系列 大结局】全网一图流死磕解析 Netty 源码
|
存储 缓存 数据处理
Netty源码剖析之数据通信流程
NIO事件/感兴趣事件 OP_REGISTER = 0 通道注册事件 OP_READ = 1 << 0 OP_WRITE = 1 << 2 OP_CONNECT = 1 << 3 OP_ACCEPT = 1 << 4