我作为 ruby/php Web 应用程序开发人员已经有一段时间了,我已经习惯了水平扩展服务器实例以处理更多请求的想法。水平扩展 - 意味着位于负载均衡器后面的应用程序的单独实例不共享任何内容并且彼此不知道。
我的主要问题是,因为 Node.js 和它对 evented-io 的强调允许运行 node.js 服务器的单个盒子来处理“数千个”同时请求 - 是用于扩展 nodejs 应用程序的负载平衡/水平缩放? 缩放节点应用程序是否仅限于垂直缩放(在问题上投入更多的 RAM/处理能力)?
我的第二个问题与 node.js 水平缩放和 websockets 有关。我已经看过很多使用 websocket 的 Node.js“聊天”教程。(最喜欢的:http ://martinsikora.com/nodejs-and-websocket-simple-chat-tutorial )
由于 websockets 有效地保持了浏览器和服务器之间的开放通信线路,PHP/Ruby 世界典型的水平扩展架构是否会导致链接中解释的聊天应用程序中断 - 因为新的 websocket 连接请求将是分配给不同的进程/服务器,并且没有一个中央资源跟踪所有连接的客户端?