0 Comments

高性能 Web服务器

发布于:2013-01-19  |   作者:广州网站建设  |   已聚集:人围观

     当我们在 10多年前第一次开始编写 Web应用的时候, Web还非常小。当然,期间我们经历了 .com泡沫。但那时从事互联网行业的人数还是相当少,创建的网站也没现在这么火热。时至今日,有了先进的 Web 2.0和随时随地可以上网的手机,这对我们这些开发人员提出了更多的要求。我们不但要提供更复杂、更多交互、更接近生活的功能,而且有越来越多的用户通过各种设备频繁使用这些功能,这是一个极大的挑战。硬件在持续改进,同时我们也需要提高软件开发水平来支持这些需求。如果只是单纯地采购更多的硬件来支撑新功能和新用户,就不那么划算了。

     Node给 Web服务器程序开发领域引进了事件驱动编程,来尝试解决这一问题。实践证明,虽然 Node不是第一个尝试此方法的平台,但它是目前为止最为成功的平台,而且我们认为它使用起来也是最容易的。后续章节会详细分析事件驱动编程,在这里我们先对其进行简短的介绍。想象一下,你现在需要连接到一台 Web服务器上获取一个网页,这在正常的 DSL连接速度下通常需要花费 100毫秒左右。如果连接的是一台普通的 Web服务器,它会在服务器上为你的请求创建一个新的程序运行实例。该程序自顶向下运行(按顺序运行所有的函数)来响应请求并生成网页返回给你。这意味着该服务器在请求被满足前需要一直占用固定大小的内存,其中包括了把数据返回给你所要等待的 100多毫秒。 Node则不是采用此方式,而是在同一个程序内服务所有的用户。每当 Node需要等待一些费时的操作,比如等待确认你已经收到返回的数据时(好让它标记此请求已经完成),它就继续处理下一个用户的请求去了。我们对细节描述得还是太多了,但这些特性意味着 Node在内存处理上比传统服务器程序高效得多,也就是能够同时快速地服务更多的用户。这是个巨大的成就,人们也为此而热爱 Node。

标签:
飞机