运营一个餐厅和构建一个高性能的服务器有很多相似的地方,我们一起来看看吧。
https://www.zybuluo.com/jewes/note/59732
单打独斗的单线程模式
小明的餐厅刚起步,规模很小,就只有小明一个人在忙活。当客人到来的时候,他得首先去招呼客人,等客人下单,然后去后厨炒菜,然后再把饭菜端给客人。如果在这个过程中有新的客人到来,他是没有功夫去招呼新客人,新客人就只能在...
分类:
其他好文 时间:
2015-01-04 00:01:28
阅读次数:
436
Reactor模式和NIO本文可看成是对Doug Lea Scalable IO in Java一文的翻译。当前分布式计算 Web Services盛行天下,这些网络服务的底层都离不开对socket的操作。他们都有一个共同的结构:1. Read request2. Decode request3. ...
分类:
其他好文 时间:
2014-12-31 17:48:08
阅读次数:
291
ACE在linux下默认使用select来实现Reactor的。如何在linux下让ACE使用epoll。
分类:
系统相关 时间:
2014-12-23 15:23:46
阅读次数:
230
Linux下高性能的网络库中大多使用的Reactor 模式去实现,Boost Asio在Linux下用epoll和select去模拟proactor模式,影响了它的效率和实现复杂度, 看陈硕的自己的Linux下Reactor网络库和ASIO的性能对比,大概比asio性能...
分类:
其他好文 时间:
2014-12-08 14:02:46
阅读次数:
207
最近在开发一个叫做medis的项目,虽然进度很缓慢,但是可以不断的去思考如何可以做的更好。 对于网路IO中的事件处理模式最常见的方式是reactor模式,这种模式一般是每一个线程一个poller或者多个线程共享一个pol...
分类:
其他好文 时间:
2014-12-05 17:40:10
阅读次数:
159
Reactor是一种事件驱动型构架,ACE_Reactor模式减轻了程序员对底层网络IO事件监视的负担,一般情况下程序员只要继承ACE_Event_Handler类,重写相关的接口处理函数,然后向ACE_Reactor的对象注册相关事件即可,事件的定义在ACE_Event_Handler类中有相关定...
分类:
其他好文 时间:
2014-12-03 22:48:44
阅读次数:
286
Libevent设计的精化之一在于把Timer事件、Signal事件和IO事件统一集成在一个Reactor中,以统一的方式去处理这三种不同的事件,更确切的说是把Timer事件和Signal事件融合到了IO多路复用机制中。 Timer事件的融合相对清晰简单,其套用了Reactor和Proacto...
分类:
其他好文 时间:
2014-11-15 21:37:14
阅读次数:
310
综述这篇文章探讨并比较两种用于TCP服务器的高性能设计模式。 除了介绍现有的解决方案,还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例),以及其在不同平台上的微调。 此文还比较了java、c#、c++对各自现有以及提到的解决方案的实现性能。系统I/O 可分为阻塞型, 非阻塞...
分类:
其他好文 时间:
2014-11-13 22:09:08
阅读次数:
294
好莱坞原则是“不要打电话给我们,我们会打电话通知你”,其实Reactor模式就是如此,你不必一直询问某个事件是否发生了,当事件发生时,会主动通知你。一般用于服务器并发的处理请求。先来看几个Reactor模式中的参与者。
事件处理器:对应一个描述符,实现了应用程序在该描述符上提供的服务。Reactor管理器:是事件处理器的调度核心。用于控制事件调度,以及应用程序注册、删除事件处理器和相关的...
分类:
其他好文 时间:
2014-11-05 21:36:40
阅读次数:
199
一. Reactor模式简介
Reactor释义"反应堆",是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程序注册的接口,这些接口又称为"回调函数"。
二. moduo库Reactor模式的实现
...
分类:
其他好文 时间:
2014-10-30 21:00:16
阅读次数:
312