在我的项目中,我计划采用Web Worker / Service Worker方法来执行“零停机时间更新”并在将来轻松扩展我的应用程序。
受本文启发:https://medium.com/the-node-js-collection/switching-from-cluster-module-to-pm2-rabbitmq-in-node-js-d0cce5eb96f4
对于工人之间的消息传递,我计划将RabbetMQ与节点js“ amqplib”模块一起使用。我是RabbitMQ,发布/订阅,消息传递方面的初学者。
能够扩展应用程序和“零停机时间更新”。所有工人都应该是无国籍的。因此,为此,我将JWT方法用于我的API。所以太好了。但是在我的应用程序中,我必须为应用程序中的每个用户监听外部套接字连接。所以我的问题是:
- 扩展“套接字侦听工作者”的正确方法是什么(即使我不确定它是否应该是单独的工作者)。
- 当我更新此“套接字侦听工作者”时,pm2将尝试仅运行该工作者的2个实例以进行“零停机时间”的更新。在这种情况下,打开两个相同套接字向RabbitMQ任务队列发送相同消息的可能性。 (如何防止RabbitMQ中出现重复消息)
- 可以说应用程序的用户数量变得庞大。除了单身工人,还可以应付。
我可以解释问题了吗?正确的思维方式是什么。