具有AWS负载平衡的Node.js

时间:2013-06-16 21:57:20

标签: mysql apache node.js amazon-web-services amazon-elb

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

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

我有3个问题:

  1. AWS ELB - 通过AWS负载均衡器运行node.js是否存在任何问题 - 我已经阅读了其他有问题的内容,但没有真正说明是否可以成功完成。

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

  3. 我理解node.js会监听事件(比如jquery)。我担心如果我有几个单独的web服务器都运行node.js,他们都将响应相同的事件。例如:有些人在数据库中写了一些聊天内容,所有网络服务器都试图将其发送给客户端。 (这将是长轮询的问题,因为一个Web服务器将获得请求和回复)。这是一个问题吗?

  4. 三江源

1 个答案:

答案 0 :(得分:0)

回答1 + 3(不能告诉2):

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

  2. node.js eventing用于SAME流程中的事件(除非您使用类似axon的消息传递解决方案)。所以即使您运行多个Web服务器,这也永远不会成为问题。启动服务器侦听某个端口,负载均衡器会将请求分发给绑定到elb的任何服务器。

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

    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();
    });
    
相关问题