技术栈

2019-05-08——Java NIO Reactor模式

2019-05-08  本文已影响0人  烟雨乱平生

Reactor

反应器设计模式(Reactor pattern)是一种为处理并发服务请求,并将请求提交到一个或者多个服务处理程序的事件设计模式。当客户端请求抵达后,服务处理程序使用多路分配策略,由一个非阻塞的线程来接收所有的请求,然后派发这些请求至相关的工作线程进行处理。

传统的并发处理

传统的网络请求并发处理是为每一个socket开启一个线程


image.png

该模式的缺点显而易见:
1、当请求比较多时,系统的性能会下降,因为创建和回收线程会消耗资源
2、当请求激增时,由于系统资源有限,请求可能会被阻塞
3、当请求处于I/O阻塞的时候,系统的资源被浪费了

Reactor设计模式

为了解决传统的多线程处理并发请求的缺陷,设计人员采用一种基于事件驱动的设计模式,这就是Reactor。

Reactor模式结构

image.png

Reactor模式主要有一下几个角色:

在处理web请求时,通常有两种体系结构,分别为:thread-based architecture(基于线程)、event-driven architecture(事件驱动)

事件驱动体系结构是目前比较广泛使用的一种。这种方式会定义一系列的事件处理器来响应事件的发生,并且将服务端接受连接与对事件的处理分离。其中,事件是一种状态的改变。比如,tcp中socket的new incoming connection、ready for read、ready for write。


上一篇 下一篇

猜你喜欢

热点阅读