必威体育Betway必威体育官网
当前位置:首页 > IT技术

Reactor模式是什么

时间:2019-08-14 17:43:13来源:IT技术作者:seo实验室小编阅读:66次「手机版」
 

reactor

一、reactor模式是什么

反应器设计模式(Reactor pattern)是一种为处理并发服务请求,并将请求提交到一个或

者多个服务处理程序事件设计模式。当客户端请求抵达后,服务处理程序使用多路分配策略,由一个非阻塞的线程来接收所有的请求,然后派发这些请求至相关的工作线程进行处理。

二、什么场景下使用Reactor模式?

对于高并发系统,常会使用Reactor模式,其代替了常用的多线程处理方式,节省系统

资源,提高系统的吞吐量。

下面用比较直观的形式来介绍这种模式的使用场景。 

以餐厅为例,每一个人就餐就是一个事件,顾客会先看下菜单,然后点餐,处理这些就

餐事件需要服务人员。

就像一个网络服务会有很多的请求,服务器会收到每个请求,然后指派工作线程去处理

一样。 

在多线程处理方式下: 

一个人来就餐,一个服务员去服务,然后客人会看菜单,点菜。 服务员将菜单给后厨。 

二个人来就餐,二个服务员去服务…… 

五个人来就餐,五个服务员去服务……

这类似多线程的处理方式,一个事件到来,就会有一个线程为其服务。

很显然这种方式在人少的情况下会有很好的用户体验,每个客人都感觉自己享有了最好

的服务。

如果这家餐厅一直这样同一时间最多来5个客人,这家餐厅是可以很好的服务下去的。

由于这家店的服务好,吃饭的人多了起来。

同一时间会来10个客人,老板很开心,但是只有5个服务员,这样就不能一对一服务

了,有些客人就不能马上享有服务员为其服务了。

老板为了挣钱,不得不又请了5个服务员。

现在又好了,每位顾客都享受最好最快的待遇了。

越来越多的人对这家餐厅满意,客源又多了,同时来吃饭的人到了20人,老板高兴但又

高兴不起来了,再请服务员吧,占地方不说,还要开工钱,再请人就挣不到到钱了。

怎么办呢?

老板想了想,10个服务员对付20个客人也是能对付过来的,服务员勤快点就好了,伺候

完一个客人马上伺候另外一个,还是来得及的。

综合考虑了一下,老板决定就使用10个服务人员的线程池!

但是这样又有一个比较严重的缺点:如果正在接受服务员服务的客人点菜很慢,其他的

客人可能就要等好长时间了。

有些脾气火爆的客人可能就等不了走人了。

这样,那就引入了Reactor模式。

那么,Reactor模式是如何处理这个问题呢?

老板后来发现,客人点菜比较慢,大部服务员都在等着客人点菜,其实干的活不是太

多。

老板之所以能当老板当然有点不一样的地方,终于发现了一个新的方法,那就是:当客

人点菜的时候,服务员就可以去招呼其他客人了,等客人点好了菜,直接招呼一声“服

务员”,马上就有个服务员过去服务。

在用了这个新方法后,老板进行了一次裁员,只留了一个服务员!

这就是用单个线程来做多线程的事。

实际的餐馆都是用的Reactor模式在服务。

相关阅读

Linux实战50台服务器规模集群模式之环境搭建准备篇(综

一、搭建集群1、采购服务器、性能测试、不同集群用什么配置。2、采购云服务(云主机、虚拟机)。3、采购带宽、压力测试。4、采购CDN

共享经济商业模式罗盘:共享商业模式的6个关键维度

火热的共享商业模式该如何衡量,其关键要素是什么?我们应该以什么样的维度来进行选择。对于共享经济商业模式的选择,有很多的维度。关

HeadFirst设计模式——如何实现自己的鸭鸣器不继承Duc

声明: 《Head First设计模式》23页提问,如何实现自己的鸭鸣器不继承Duck类?本文解答这个问题。 正如该书前面所说,通常【有一个】比

淘宝客cps是什么意思?有哪些模式?

淘宝客推广现在越来越火,不使用淘宝客推广的卖家们都落伍了哦,淘宝客是什么大家应该都知道了,但是很多淘客规则、专业名词大家还不了

商业模式VS盈利模式,有何不同?

这一篇文章就从不同角度来给大家区分,商业模式和盈利模式,他们两者有什么显著的区别。01 概念不同商业模式,我们上一篇已经说过,它的

分享到:

栏目导航

推荐阅读

热门阅读