当前位置: 首页 > news >正文

有域名怎么建网站免费的网络推广渠道有哪些

有域名怎么建网站,免费的网络推广渠道有哪些,十大免费壁纸软件,做淘宝客网站难吗文章目录 1. 介绍2. 启动流程2.1 创建并初始化 Channel2.2 注册 Channel 到 EventLoop2.3 绑定端口并启动监听2.4 处理新连接(主从 Reactor 模型) 3. 启动流程图4. 总结 1. 介绍 Netty 服务器启动的核心入口是 ServerBootstrap 对象的 bind(int inetPor…

文章目录

  • 1. 介绍
  • 2. 启动流程
    • 2.1 创建并初始化 Channel
    • 2.2 注册 Channel 到 EventLoop
    • 2.3 绑定端口并启动监听
    • 2.4 处理新连接(主从 Reactor 模型)
  • 3. 启动流程图
  • 4. 总结


1. 介绍

Netty 服务器启动的核心入口是 ServerBootstrap 对象的 bind(int inetPort) 方法,本文将介绍 bind(int inetPort) 内部的执行流程。

2. 启动流程

2.1 创建并初始化 Channel

  • 创建 NioServerSocketChannel
    • 通过反射实例化用户指定的 Channel 类型(默认为 NioServerSocketChannel),其无参构造函数会通过调用 SelectorProvider 对象的 openServerSocketChannel() 方法 创建底层 JDK ServerSocketChannel,并设置为非阻塞模式。
    • 同时初始化 ChannelConfig(如 NioServerSocketChannelConfig)和 ChannelPipeline含头尾节点)。
  • 初始化 Channel 参数:通过 option() 设置的参数(如 SO_BACKLOG)被应用到 ChannelConfig,但部分参数(如 SO_BACKLOG)需在 绑定端口时 通过 JDK 的 ServerSocket 生效。

2.2 注册 Channel 到 EventLoop

  • 选择 EventLoop:从 BossGroup 的 EventLoopGroup 中选择一个 NioEventLoop(主 Reactor)。
  • 异步注册过程
    • 通过 register()Channel 注册到 EventLoop,该操作由 EventLoop 线程 异步执行若当前线程不是 EventLoop 线程,则任务会被提交到任务队列。
    • 注册成功后,Channel 进入“已注册未激活”状态(尚未绑定端口)。
  • 初始化 ChannelPipeline:注册完成后触发 ChannelInitializer 对象的 initChannel() 回调,执行以下操作:
    • 添加用户 Handler:将用户通过 handler() 设置的 Handler 添加到 Pipeline 中。
    • 添加 ServerBootstrapAcceptor:作为最后一个处理器,负责将新连接的 SocketChannel 分配给 WorkerGroup,并传递 childHandler()childOptions() 等配置。

2.3 绑定端口并启动监听

  • 绑定本地端口
    • 提交绑定任务到 EventLoop 的任务队列,由 EventLoop 线程调用 doBind():底层通过 JDK 的 ServerSocketChannel 对象的 bind() 方法绑定端口,此时 SO_BACKLOG 等参数真正生效。
    • 绑定成功后触发 ChannelActive 事件:通过 beginRead() 设置 interestOpsAbstractNioChannel 自动注册 OP_ACCEPT 事件。
  • 异步通知:绑定结果通过 ChannelFuture 通知,用户可通过 sync() 阻塞等待 或 addListener() 回调处理。

2.4 处理新连接(主从 Reactor 模型)

  • 接受连接请求:主 Reactor 的 NioEventLoop 监听到 OP_ACCEPT 事件后,调用 NioServerSocketChannel 对象的 doReadMessages() 方法,通过 ServerSocketChannel 对象的 accept() 方法创建 SocketChannel 对象。
  • 分配从 ReactorServerBootstrapAcceptor 将新建的 SocketChannel 提交到 WorkerGroup 的某个 EventLoop(从 Reactor),可能跨线程执行(通过 EventLoop.execute())。
  • 初始化客户端 Channel
    • 参数应用childOption()childAttr() 在注册时应用到客户端 Channel
    • 异步初始化:通过 childHandler() 中的 ChannelInitializer 延迟添加用户 Handler,在 EventLoop 线程中触发 initChannel(),避免阻塞主 Reactor。
    • 事件注册:客户端 Channel 默认关注 OP_READ 事件(可通过 childHandler() 修改)。

3. 启动流程图

启动流程图

4. 总结

Netty 服务器的启动流程主要体现在 ServerBootstrap 对象的 bind(int inetPort) 方法里,分为四个部分:

  • 创建并初始化 Channel
  • 注册 ChannelEventLoop
  • 绑定端口并启动监听。
  • 使用主从 Reactor 模型处理事件。
http://www.cadmedia.cn/news/16568.html

相关文章:

  • 上海 餐饮网站建设网站建设策划书范文
  • 电脑商城网站模板网络销售真恶心
  • 如何对新开网站做收录做推广哪个平台效果好
  • 坤思特重庆网站建设熊掌号seo排名优化技巧
  • 长沙网站优化排名重庆好的seo平台
  • 装网要多少钱搜索引擎内部优化
  • 辽宁城乡建设部网站首页百度一下搜索网页
  • 湛江建设网官方网站阿里巴巴国际站
  • 广州网站建设网站推广个人网站制作
  • 自己做网站服务器360建站官网
  • 网站开发的时间流程站长工具seo排名查询
  • 企业画册设计欣赏网站优化排名方案
  • 商标注册代理itmc平台seo优化关键词个数
  • 濮阳河南网站建设网络营销案例成功案例
  • 室内设计公司免费网站百度推广优化排名
  • 河南高端建设网站软件推广是什么工作
  • 学校网站平台建设app网站推广平台
  • 周口网站建设专家关键词搜索工具爱站网
  • seo快速排名网站优化注册网站
  • 网站建设必须要服务器吗北京网络推广公司
  • b2c模式的电商网站有哪些长春seo排名优化
  • 建设企业网站的原因全球搜索引擎排行榜
  • 游仙建设局官方网站精准粉丝引流推广
  • 海口网站开发建设销售网站怎么做
  • 物流跟踪网站建设网络推广平台收费不便宜
  • 常见的手机网站2023年最新时政热点
  • 建企业版网站多久现在外贸推广做哪个平台
  • 做电商网站公司如何自制网站
  • 十大跨境电商公司排名潮州seo建站
  • 网站原型图设计郑州网站营销推广公司