В моем проекте я планирую использовать подход 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, Pub / Sub, Messaging.
Чтобы иметь возможность масштабировать приложение и «Обновление с нулевым временем простоя».Все работники должны быть лицами без гражданства.Поэтому для этого я использую подход JWT для своего API.Так хорошо.Но в моем приложении я должен прослушивать внешнее сокетное соединение для каждого пользователя в моем приложении.Итак, мои вопросы:
- Каков правильный подход для масштабирования «Работника, слушающего сокеты». (Даже я не уверен, должен ли это быть отдельный работник).
- тогда я обновлюэтот «Работающий с сокетами слушатель» pm2 попытается просто запустить 2 экземпляра этого работника, чтобы обновить «Ноль времени простоя».В этом сценарии возможность открытия двух одинаковых сокетов, отправляющих одно и то же сообщение в очередь задач RabbitMQ.(Как я могу предотвратить дублирование сообщений в RabbitMQ)
- Допустим, число пользователей приложения становится огромным.Помимо одного работника может справиться.
Я правильно объяснил проблемы?Каков был бы правильный способ мышления ..