我使用Node.JS和Socket.io写了一个聊天。聊天很简单:总是它是一个有2个人的房间,一个员工和一个客户。
现在我们的体积正在成长,我们正面临一些问题,比如消息"消失"在网络问题上,我们想在我们公司和客户之间实施一个队列。
类似的东西:
对于每张NodeJS进程,我们在负载均衡后面有6个VM。我想知道使用Queues的最佳方法是什么。
我应该在每个房间的队列中创建一个主题吗?例如:对于用户C和D之间的交互,它将使用 messages / c:d ;对于用户A和B之间的交互,它将使用消息/ a:b 。
或者,在没有任何主题的情况下使用单个队列,发布/订阅消息中的所有消息并为每个订阅者进行广播更好?如果订户有房间,他将处理该消息。
在第一种方法中,我不确定如何使用MQ客户端,因为我通常将它们初始化一次并让它运行。当我想创建一个存储MQClient的缓存时,每个客户端将负责一个主题,听起来很奇怪 - 如果我有10k个房间,我将拥有10k的MQ客户端。