Netty 线程模型与基础应用(一)

Reactor模式

Reactor 是反应堆的意思,Reactor 模型是指通过一个或多个输入同时传递给处理器。服务端将它们同步分派给请求对应的处理线程,Reactor 模式也叫 Dispatcher 模式。Netty 整体是整体采用了主从Reactor模型

Reactor角色

Reactor模型中有三种角色,分别是

  1. Acceptor:处理客户端新连接,并分派请求到处理器链中
  2. Reactor:负责监听和分配事件,将I/O事件分派给对应的Handler。
  3. Handler:事件处理,如编码、解码等
    在这里插入图片描述

Reactor 线程模型:

Reactor有三种线程模型分别是:单Reactor单线程模型、单Reactor多线程模型、主从Reactor多线程模型。而Netty正是采用最后一种。

1. 单Reactor单线程模型

该模型下所有请求建立、IO读写、业务处理都在一个线程中完成。如果在业务中处理中出现了耗时操作,就会导致所有请求全部处理延时。因为他们是有由一个线程同步处理的。上节所讲的心跳服务即是一个列例子。
在这里插入图片描述

单Reactor多线程模型

为了防止业务处理导致阻塞,在多线程模型下会用一个线程池来异步处理业务,当处理完成后在回写给客户端。上节所讲的Http服务即是一个列例子
在这里插入图片描述

主从Reactor多线程模型

单React始终无法发挥现代服务器多核CPU的并行处理能力,所以Reactor是可以有个的,并且有一主多从之分。一个主Reactor仅处理连接,而多个子Reactor用于处理IO读写。然后交给线程池处理业务。Tomcat就是采用该模式实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值