我一直是ruby/php的Web应用程序开发人员,我已经习惯了服务器实例的水平伸缩以处理更多请求的想法。水平缩放 - 表示位于负载均衡器后面的应用程序的单独实例,它们不共享任何内容,并且彼此不知道。NodeJS水平缩放
我的主要问题是,因为Node.js和它的重点evented-io允许单个框运行node.js服务器来处理'数千'的同时请求 - 是负载平衡/水平缩放使用扩展nodejs应用程序?是否缩放一个节点应用程序限于垂直缩放(在问题时抛出更多的RAM /处理能力)?
我的第二个问题与node.js水平缩放和websockets有关。我见过很多使用websockets的Node.js的“聊天”教程。由于websockets在浏览器和服务器之间有效地保持开放的通信线路,因此PHP/Ruby世界中典型的水平缩放体系结构导致类似于链接中所解释的那种聊天应用程序打破 - 因为新的websocket连接请求将被分配给不同的流程/服务器,并且没有一个中央资源会跟踪所有连接的客户端?
这是一个老问题,但我使用mongodb来存储和检索我所有的聊天应用程序数据。由于我想横向扩展我的应用程序,因为当我有多个服务器时,我的聊天应用程序不起作用。我应该做什么,我应该完全删除mongodb并使用redis?或者有更好的解决方案。 – DragonBorn