【问题标题】:what is event driven web server什么是事件驱动的 Web 服务器
【发布时间】:2010-10-20 19:29:10
【问题描述】:

我想了解事件驱动网络服务器的基础知识,我知道其中之一是 Tornado,但非常感谢任何其他信息。

谢谢

【问题讨论】:

  • 为什么这个问题不合适,有一个关闭请求?

标签: webserver


【解决方案1】:

【讨论】:

  • +1 完美的例子! This 也很棒。
  • 链接已失效或无法通过受保护的代理打开。如果可能,请在此处添加相关文字。
【解决方案2】:

Web 服务器需要处理并发连接。有很多方法可以做到这一点,其中一些是:

  • 每个连接一个进程。
  • 每个连接一个进程,并有一个可供使用的进程池。
  • 每个连接一个线程。
  • 每个连接一个线程,并且有一个线程池可供使用。
  • 单个进程,在回调中处理每个事件(接受的连接、可读取的数据、可写入客户端...)。
  • 以上的一些组合。
  • ...

最后,区别在于如何存储每个连接状态(显式在上下文结构中,隐式在堆栈中,隐式在延续中,...)以及如何在连接之间调度(让操作系统调度器来做,让操作系统轮询原语来做,...)。

【讨论】:

    【解决方案3】:

    事件驱动方式旨在解决C10K问题。它将传统的“推模型”转变为“拉模型”,以创建非阻塞事件 I/O。简而言之,事件驱动架构避免产生额外的线程和线程上下文切换开销,并且通常以更好的性能和更少的资源消耗告终。

    来自 Rails 开发人员的一些概述,还包括类比: http://odysseyonrails.com/articles/8

    【讨论】:

    • 请注意,不鼓励仅链接的答案,因此答案应该是搜索解决方案的终点(相对于另一个参考中途停留,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-04-27
    • 2020-04-30
    • 2015-04-11
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多