节点:缩放socket.io/nowjs - 跨不同实例进行缩放

Eli*_*sdx 11 node.js socket.io nowjs-sockets

在开始编写我的应用程序之前,我需要知道当单个node.js实例(express和(socket.io或nowjs))不再足够时该怎么做.

你现在可能告诉我,我不应该关心规模直到时间,但我不想开发应用程序并遇到麻烦,因为你不能轻易地在多个实例中扩展socket.io或nowjs.

我最近读到socket.io现在支持使用Redis进行扩展的方法(我也没有经验).Nowjs是基于socket.io构建的 - 它的工作方式是否相同?在nowjs.org上,您可以读到"NowJS的分布式版本"正在开发中,并且需要花钱.

Jus*_*ith 14

如果您需要扩展节点,人们通常会首先启动的是将负载均衡器放在多个节点实例的前面.今天的标准是nginx,虽然我想查看最近出现的节点平衡器'bouncy'.以下是使用nginx反向代理管理多个节点实例的人的示例:

Node.js + Nginx - 现在怎么办?

你提到的第二件事是socket.io/nowjs.根据您使用这些框架的方式,您可能会遇到想要在命中多个node.js实例的客户端之间共享上下文的情况.如果是这种情况,我建议使用持久性存储(如redis)来弥合节点实例之间的差距.这是一个例子:

如何在socket.io中重用redis连接?

希望这是足够的信息和阅读来帮助您入门,如果您有任何疑问,请告诉我.

快乐的编码!