Доброго времени суток.
Имеется приложение на Node.JS в связке с кластером.
Задача: при определенном событии от пользователя поставить задачу на выполнение к API, который выполнит цепочку запросов и вернет ответ.
Проблема: на Node.JS подняты кластеры, однако для корректной работы API по моему мнению требуется абстрагировать его в отдельный процесс, ибо нужен единый setTimeout для опрашивания API и единый ограничитель RPS.
Решение: с кластера на сервис API отправлять сообщение через какой-нибудь брокер с подтверждающей очередью, далее чтобы этот сервис обрабатывал этот запрос, сам же заносил результат работы в БД и отправлял уведомление через Redis pub/sub об окончании работы, если пользователь онлайн. Если нет - информация подтянется через БД при следующем заходе пользователя.
Вопросы:
1) Нормально ли организовывать одностороннее общение между основным приложением и микросервисом через брокер сообщений?
2) Нормально ли делегировать на микросервис работу с БД основного приложения? По факту он будет лишь обновлять какие-то данные, которые изначально основное приложение туда их инициализирует.
Нормально ли организовывать одностороннее общение между основным приложением и микросервисом через брокер сообщений?
Общаться через брокер - нормально.
Иметь "основное приложение" - не нормально.
Иметь одни и те же данные в разных сервисах - если таких данных много значит стейт разбит плохо.
Нормально ли делегировать на микросервис работу с БД основного приложения? По факту он будет лишь обновлять какие-то данные, которые изначально основное приложение туда их инициализирует.
Это будет не микросервис а часть основного приложения по сути.
vetsmen, Делайте отдельный процесс, пусть ходит в базу монолита, пусть его код лежит в репозитории монолита, никаких проблем)
Просто он будет частью монолита
То что вы прочтете ниже относительно универсальной серебрянной пули нет.
1) Вообще я рекомендовал бы это делать на прямую через сокеты.
2) Ни что не истина все дозволено, и очень сильно зависит от задач. Я не думаю, что смогу рассказать это точно так же как Илья Климов *ссылка на лекцию по микросервисам*
Ни что не истина все дозволено, и очень сильно зависит от задач. Я не думаю, что смогу рассказать это точно так же как Илья Климов *ссылка на лекцию по микросервисам*
Автор курса даже не удосужился разобраться чем микросервисы от монолита отличаются, не нужно такую чушь рекламировать.
Евгений Ромашкан, хорошо давайте оперировать к авторитету. Кто вы и кто Илья Климов? Я просто зашел на ваш, хабр. И писать про биткоины. Это возможно высоко ,но нет. Человек рассказывает за CS, этого процесса. И если вам нужна, полная формулировка того что же такое микросервисы. Я признаю, вам еще рано его смотреть.