关于Reactor模型
核心思想:分治
看了一些 Reactor 相关的文章和资料,列举的一些 Reactor 模型的优点,包括极客时间的文章也有讲过在架构中的Reactor中的优点和缺点。但是如果不使用 Reactor 模型的一般方式是什么样子的?会有什么问题?
思想:分而治之+事件驱动1)分而治之一个连接里完整的网络处理过程一般分为accept、read、decode、process、encode、send这几步。Reactor模式将每个步骤映射为一个Task,服务端线程执行的最小逻辑单元不再是一次完整的网络请求,而是Task,且采用非阻塞方式执行。
2)事件驱动每个Task对应特定网络事件。当Task准备就绪时,Reactor收到对应的网络事件通知,并将Task分发给绑定了对应网络事件的Handler执行。
3)几个角色reactor:负责绑定管理事件和处理接口;selector:负责监听响应事件,将事件分发给绑定了该事件的Handler处理;Handler:事件处理器,绑定了某类事件,负责执行对应事件的Task对事件进行处理;Acceptor:Handler的一种,绑定了connect事件。当客户 ...