Совместное использование ресурса NodeJ и обработка зависимости от этого ресурса - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть сценарий, когда мой сервер nodejs будет одновременно принимать 50 запросов "GET". Теперь эти 50 запросов «GET» выполнены для получения данных, которые будут предоставлены другим сервером.

Теперь, чтобы подключиться к этому другому серверу и получить эти данные для каждого из моих 50 запросов, сначала мне нужно вызвать API входа в систему этого сервера из моего nodejs. Этот логин api вернет sessionId моему nodejs. Теперь, чтобы разрешить все эти 50 запросов «GET», мой nodejs должен выполнить вызов «GET» для каждого из 50 запросов к этому серверу с этим вновь полученным идентификатором сеанса.

Ограничение: я могу вызвать API входа в систему только из одного источника только один раз (на этом сервере присутствует какой-либо ограничитель скорости API, который будет отклонять последующие последовательные запросы из того же источника). Как только я получу действительный идентификатор сессии, я могу без проблем выполнять вызовы ni api, используя этот идентификатор сессии.

Также я реализовал кластеризацию на моем сервере nodejs. Так что теперь у меня есть новые копии запущенных процессов узлов. Таким образом, из процесса 'n' узла любой "один" из них может запросить только этот идентификатор сессии. Но как только этот sessionId получен, другие процессы также должны узнать этот sessionId, чтобы они могли разрешать запросы, выделенные им из пула этих 50 запросов.

Как мне добиться синхронизации sessionId между процессами разных узлов. И как я буду следить за тем, чтобы все 50 запросов были разрешены только тогда, когда я получу действительный идентификатор сессии.

Архитектурная схема: https://drive.google.com/open?id=1x1CwE5aCuv03XnNMB7C8X3D_5aWqCF1m

...