<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="浅析Node.js：一个“编码就绪”服务器" id="card1">
<p> 游客</p><p>
标题:浅析Node.js：一个“编码就绪”服务器<br/>
正文:<br/>
引自:http://sd.csdn.net/a/20110617/299900.html导读：Node是一个服务器端JavaScript解释器，它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序，编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。本文探究了Node.js能解决哪些问题，它如何工作，如何运行一个简单应用程序，最后，Node何时是以及何时不是一个好的解决方案。Node旨在解决什么问题？Node公开宣称的目标是&amp;ldquo;旨在提供一种简单的构建可伸缩网络程序的方法&amp;rdquo;。当前的服务器程序有什么问题？我们来做个数学题。在Java和PHP这类语言中，每个连接都会生成一个新线程，每个新线程可能需要 2 MB 配套内存。在一个拥有8GB RAM的系统上，理论上最大的并发连接数量是4,000个用户。随着您的客户端基础的增长，您希望您的web应用程序支持更多用户，这样，您必须添加更多服务器。当然，这会增加业务成本，尤其是服务器成本、运输成本和人工成本。除这些成本上升外，还有一个技术问题：用户可能针对每个请求使用不同的服务器，因此，任何共享资源都必须在所有服务器之间共享。例如，在Java中，静态变量和缓存需要在每个服务器上的JVMs之间共享。这就是整个web应用程序架构中的瓶颈：一个服务器能够处理的并发连接的最大数量。Node解决这个问题的方法是：更改连接连接到服务器的方式。每个连接都创建一个进程，该进程不需要配套内存块，而不是为每个连接生成一个新的OS线程（并向其分配一些配套内存）。Node声称它绝不会死锁，因为它根本不允许使用锁，它不会直接阻塞I/O调用。Node还宣称，运行它的服务器能支持数万个并发连接。事实上，Node通过将整个系统中的瓶颈从最大连接数量更改到单个系统的流量来改变服务器面貌。现在您有了一个能处理数万条并发连接的程序，那么您能通过Node实际构建什么呢？如果您有一个web应用程序需要处理这么多连接，那将是一件很 &amp;ldquo;恐怖&amp;rdquo; 的事！那是一种&amp;ldquo;如果您有这个问题，那么它根本不是问题&amp;rdquo; 的问题。在回答上面的问题之前，我们先看看Node如何工作以及它被设计的如何运行。Node肯定不是什么没错，Node是一个服务器程序。但是，它肯定不像Apache或Tomcat。那<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=352&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=352&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=352&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=352&amp;Page=3">[3]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=352&amp;Page=5">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=352">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=352">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>