reactor模式

来源:互联网 发布:linux cp 所有文件 编辑:程序博客网 时间:2024/06/03 13:52

reactor模式

为了处理web request请求,有两种web架构:基于线程模型的架构和基于事件驱动的架构。

基于线程模型

线程模型的好处是扩展性比较好,通过加server机器提供更多的线程。
但是缺点就比较多了,
因为是采用一个连接对应一个处理线程的方式。
这就需要大量的处理线程,占用大量内存,大量线程调度开销。
尤其是大量连接到来时,线程用光,导致请求被丢弃。尤其是遇到keep-alive的长连接,情况会更加严重。

基于事件驱动

事件驱动包括两个角色,事件创建者和事件消费者。
Reactor模式是事件驱动模型的一个实现。简单的说就是有一个线程不断轮询事件源,然后将其分发给对应的处理器。

由两部分组成。
reactor,就是那个单独的线程。
handler,就是对应的处理器。

一句话:reactor设计模式就是一个同步的按照事件到达顺序处理事件的分发器。