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

金华建设工程网站陕西省住建厅官网

金华建设工程网站,陕西省住建厅官网,哪个网站可以做计算机二级的题,网站栏目建设征求意见目录 一、Reactor 模式的核心思想 二、Netty 中的 Reactor 模式实现 1. 服务端代码示例 2. 处理请求的 Handler 三、运行流程解析(结合 Reactor 模式) 四、关键点说明 五、与传统模型的对比 六、总结 Reactor 模式是 Netty 高性能的核心设计思想…

目录

一、Reactor 模式的核心思想

二、Netty 中的 Reactor 模式实现

1. 服务端代码示例

2. 处理请求的 Handler

三、运行流程解析(结合 Reactor 模式)

四、关键点说明

五、与传统模型的对比

六、总结


Reactor 模式是 Netty 高性能的核心设计思想之一,它通过 事件驱动异步非阻塞 I/O 实现高并发处理。

下面通过一个服务端处理多请求的例子,详细解释 Reactor 模式在 Netty 中的实现。


一、Reactor 模式的核心思想

Reactor 模式的核心是 分治:将网络连接的建立(Accept)与 I/O 读写(Read/Write)分离到不同的线程处理,避免单线程阻塞。
核心组件:

  1. Reactor:监听事件(如连接请求),并将事件分发给对应的处理器。
  2. Acceptor:处理新连接建立事件。
  3. Handler:处理已建立连接的 I/O 读写事件。

在 Netty 中,Reactor 模式的实现体现为 主从多线程模型

  • 主 Reactor:负责处理连接建立(bossGroup)。
  • 子 Reactor:负责处理 I/O 读写(workerGroup)。

二、Netty 中的 Reactor 模式实现

1. 服务端代码示例

以下是一个 Netty 服务端代码,演示如何接受多个客户端请求:

public class ReactorServerExample {public static void main(String[] args) {// 主 Reactor(处理连接请求)EventLoopGroup bossGroup = new NioEventLoopGroup(1);  // 1 个线程// 子 Reactor(处理 I/O 读写)EventLoopGroup workerGroup = new NioEventLoopGroup(); // 默认 CPU 核心数 * 2try {ServerBootstrap serverBootstrap = new ServerBootstrap();serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel ch) {ch.pipeline().addLast(new ServerHandler());}});// 绑定端口并启动ChannelFuture future = serverBootstrap.bind(8080).sync();future.channel().closeFuture().sync();} catch (InterruptedException e) {e.printStackTrace();} finally {bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}}
}
2. 处理请求的 Handler
public class ServerHandler extends ChannelInboundHandlerAdapter {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) {// 处理客户端请求ByteBuf buf = (ByteBuf) msg;System.out.println("Received: " + buf.toString(CharsetUtil.UTF_8));ctx.writeAndFlush(Unpooled.copiedBuffer("Hello Client!", CharsetUtil.UTF_8));}@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {cause.printStackTrace();ctx.close();}
}

三、运行流程解析(结合 Reactor 模式)

假设客户端 A 和 B 同时连接服务器:

  1. 主 Reactor(bossGroup)
    • 主 Reactor 的 NioEventLoop 线程负责监听端口(如 8080)。
    • 当客户端 A 和 B 发起连接请求时,主 Reactor 的线程会 顺序处理这些连接请求
    • 每接受一个新连接(accept 事件),主 Reactor 会将新连接的 Channel 注册到子 Reactor(workerGroup)中的一个 EventLoop
  1. 子 Reactor(workerGroup)
    • 子 Reactor 包含多个 EventLoop,每个 EventLoop 绑定一个线程。
    • 客户端 A 和 B 的 Channel 被分配到不同的 EventLoop(例如轮询分配)。
    • 当客户端发送数据时,子 Reactor 的线程负责处理读事件(channelRead),执行 ServerHandler 中的业务逻辑,并返回响应。

四、关键点说明

  1. 非阻塞 I/O
    • 主 Reactor 和子 Reactor 均使用 NIO 的非阻塞模式,单线程可处理多个连接。
    • 例如:一个 EventLoop 线程可以处理多个 Channel 的 I/O 事件。
  1. 线程隔离
    • 主 Reactor 的线程仅处理连接建立,避免 I/O 操作阻塞新连接的接收。
    • 子 Reactor 的线程专注于 I/O 读写,充分利用多核 CPU。
  1. 事件驱动
    • 所有操作(连接、读、写)均由事件触发,避免轮询浪费资源。
    • 例如:当数据到达时,Netty 自动触发 channelRead 事件。

五、与传统模型的对比

模型

线程开销

并发能力

资源利用率

传统 BIO

每个连接一个线程

低(线程数受限)

低(线程阻塞)

Reactor 模式

固定线程池

高(单线程处理多连接)

高(非阻塞)


六、总结

通过 Reactor 模式,Netty 实现了:

  1. 高并发:单线程处理多连接,减少线程切换开销。
  2. 低延迟:非阻塞 I/O 确保事件快速响应。
  3. 易扩展:责任链模式(Pipeline)允许灵活添加业务逻辑。

在示例中,主 Reactor 处理连接,子 Reactor 处理 I/O,多个客户端请求被高效分发到不同线程,最终由 ServerHandler 处理业务逻辑。这就是 Netty 高性能的核心秘密!


文章转载自:

http://ojSm1IkT.gbjxj.cn
http://NdbTArIw.gbjxj.cn
http://UIrB4juO.gbjxj.cn
http://WgD5wCI6.gbjxj.cn
http://dKFLdkGo.gbjxj.cn
http://j6tVVa6R.gbjxj.cn
http://iqkOG3Cw.gbjxj.cn
http://H6ottFNC.gbjxj.cn
http://pYcwdJJq.gbjxj.cn
http://RMRb1yed.gbjxj.cn
http://J83Coq37.gbjxj.cn
http://6SaxayV1.gbjxj.cn
http://MPwRdzOk.gbjxj.cn
http://uKWZ47RU.gbjxj.cn
http://APj3fgWG.gbjxj.cn
http://oJL8ejpO.gbjxj.cn
http://gr2tJbpN.gbjxj.cn
http://K7AMvzcb.gbjxj.cn
http://kJjckIBN.gbjxj.cn
http://QfQujBjq.gbjxj.cn
http://01dTmsjB.gbjxj.cn
http://kIwWpp5j.gbjxj.cn
http://mUXWGbKi.gbjxj.cn
http://NHOXz9LL.gbjxj.cn
http://E0KT014I.gbjxj.cn
http://0L429UDn.gbjxj.cn
http://NGrcmsLW.gbjxj.cn
http://o73UfIsu.gbjxj.cn
http://K4NtaxKH.gbjxj.cn
http://1mhtht9E.gbjxj.cn
http://www.dtcms.com/wzjs/637061.html

相关文章:

  • 网站一次性建设建设网站公司怎么分工
  • 共享互助医疗网站建设机械外贸网站建设
  • 应该符合建设网站对手网站分析
  • 免费自助小型网站石家庄建设局
  • 手机版网站建设湖州专业网站建设公司
  • 男女做暧昧小视频网站哪个网站专门做游戏脚本
  • 自己做网站怎么跳过备案北京市文化局政务网站建设项目
  • 深圳定制建站网站建设企业画册设计印刷制作
  • php网站本地搭建国外网页模板
  • 武进网站建设市场苏州做网站优化的公司
  • 创建软件网站确保网站建设又在前列
  • 网站打开慢什么原因中国免费网站服务器2020
  • 汕头网站建设建设工程管理有限公司
  • 母婴行业网站建设如何在linux服务器上架设网站
  • 济宁网站建设方面淮上网站建设
  • 建设局网站更改法人所需材料用dw怎么做网站首页
  • 东莞樟木头做网站哪家好wordpress 微信 插件
  • 网站做快照北票市建设工程安全管理站网站
  • 邯郸网站建设公司哪家好北京市建设局网站
  • 网站的关于页面wordpress精致博客主题
  • 什么网站可以免费做视频的软件具有口碑的柳州网站建设价格
  • 杨凌区住房和城乡建设局网站南京做网站的客户电话
  • a做爰网站自己建的网站有乱码
  • 菲律宾做网站好吗免费创建个人网站
  • 潍坊公司网站模板建站网络营销论文5000字
  • 婴儿用品网站模板微信官方商城小程序
  • 孝感网站建设效果南阳做网站seo的
  • 网站建设调查通知wordpress 众筹
  • 陶然亭网站建设旅游网站建设需求说明书
  • 景点网站开发积极意义怎样建设自己网站