Redis是这个场景中的单点故障(Redis,Node.JS,Socket.IO)吗?

时间:2017-03-27 15:25:23

标签: node.js redis socket.io scalability

我使用Redis,因为它允许我横向扩展我的应用程序(多个服务器)。通过使用它的pub子功能,我的所有服务器都可以相互通信而无需共享内存。

到目前为止,很酷!我们可以添加更多的nodejs服务器,但是所有这些服务器都订阅了一台Redis服务器。所以我们的情况是,我们有许多NodeJs服务器只与一台Redis服务器通信,我们可以为更多的客户提供服务,但我们仍然有一台Redis。

从我的测试中,Redis服务器使用的资源更少,因此可以处理更多,但在这个设计中我认为是SPF。你怎么看?

设计可扩展系统的最佳方法是什么?我知道主/从Redis,但我仍然不相信它是否是最好的解决方案。

1 个答案:

答案 0 :(得分:2)

是的,Redis是您描述的单点故障。不仅在某种意义上说,当它关闭时,你的应用程序就会关闭,但也就是说,如果你的某个进程删除或破坏了数据,那么它将永远丢失。

您可以使用多台Redis服务器并拥有良好的备份策略。

请参阅本教程以了解群集:

请参阅以下教程进行备份: