1

我正要构建一个聊天应用程序,我很想使用 node.js(这将是我第一次使用它)。

我将 Amazon ELB(无粘性)与多个 Linux EC2 实例 (apache) 和一个 mysql 数据库一起使用。

我有3个问题:

  1. AWS ELB - 通过 AWS 负载均衡器运行 node.js 是否有任何问题 - 我读过一些关于其他人有问题的文章,但没有真正说明它是否可以成功完成。

  2. Node.js 能否有效地监听数据库表的更新然后响应这些更新?这是现实的吗?我已经读过它的可能,但它听起来不像是一个很好用的功能。

  3. 我了解 node.js 会监听事件(如 jquery)。我担心我是否有几个单独的网络服务器都运行 node.js,它们都会响应相同的事件。例如:有些人将一些聊天记录写入数据库,他们所有的网络服务器都试图将其发送给客户端。(这将是长轮询的问题,因为一台 Web 服务器会收到请求并回复)。这是一个问题吗?

谢谢你

4

1 回答 1

0

回答 1 + 3(不能说出 2):

  1. 我们使用 aws elb 已经一年多了,从来没有遇到过任何问题。我们的应用程序需要接近 100% 的正常运行时间

  2. node.js 事件是针对同一进程中的事件(除非您使用像axon这样的消息传递解决方案)。因此,即使您运行多个网络服务器,这也不应该成为问题。启动您的服务器在某个端口上侦听,负载均衡器会将请求分发到绑定到 elb 的任何服务器。

请求/响应周期本身是原子的,这意味着获得请求的同一服务器必须在他完成此请求的工作时发送响应(将聊天写入数据库)。您的代码基本上看起来像这样:

http.createServer(function (request, response) {
   // do something with the request, save to db or whatever
   db.save ...

   // and now send the response

   response.write(200);
   response.end();
});
于 2013-06-17T08:50:49.447 回答