2

我有一个包含群组的论坛,用户一直在创建新群组,目前我正在使用带有 ttl 的节点缓存来缓存群组及其内容(帖子、喜欢和评论)。

服务器在乞讨时工作得很好,但是当更多人开始使用该应用程序时性能下降,所以我决定使用 node.js 集群模块作为下一步来提高性能。

节点缓存会导致一致性问题,同一组可能会缓存在两个工作人员中,因此如果其中一个更改了,另一个将不知道(除非您这样做)。

我想到的第一个解决方案是使用 redis 来存储整个组,并借助 redis 数据类型(集合和哈希对象)来存储内容,但我不知道这有多有效。

另一种解决方案是使用 redis 将请求映射到正确的工作人员,在这种情况下,缓存的数据在工作人员中随机分布,因此当工作人员收到与某个组相关的请求时,他会检查组所有者(持有该组的工作人员)内存中的组实例)并要求他使用 node-ipc 获取所需的数据,然后将其返回给用户。

第一个解决方案有问题吗?
第二种解决方案不提供公平性(如果所有受欢迎的群体都落在同一个工人身上),是否有解决方案?

有什么建议么?
提前致谢

4

0 回答 0