Как в node.js реализовать мультиагентную архитектуру?
Всем привет!
Есть маленький вопрос как возможно реализовать такую архитектуру для примера:
1. Ядро
2. Объявления
3. Личный кабинет
Все три пункта это разные процессы node.js и висят на разных портах, Ядро у нас висит на 80 и выступает в роли роутера и реализует маленький функционал наподобии авторизации, регистрации, страницы.
Итак если мы идём по урлу www.site.ru/adverts/ то наш запрос должен пройти через ядро и попасть в сервис Объявления.
Все данные о пользователе хранятся в бд в виде сессии.
Как можно сделать перенаправление req?
Чем меня заинтересовала подобная архитектура, полная независимость слоёв + более удобное сопровождение и т.д..
В теории можно, передавать данные от "ядра" форкам на обработку, но легче от этого не станет совсем.
Вам просто нужна система путей, проще всего будет взять какой нибудь фреймворк (например) где уже есть router.
Смотрите можно например разместить 1,2,3 на разных машинах с разными IP. Тут нужно как то по другому разруливать. А просто роутер реализуется и нативно. Возможно есть обычные проксирование в node.js? Именно это я хочу узнать.
Есть например nodejs.org/api/cluster.html, но это совсем не то, возможно nginx с проксированием подойдет.
Есть вариант с реализацией через redis например, ядро принимает запросы, складывает в базу, воркеры на других серверах смотрят и делают задания, результат возвращают в базу, ядро отдает результат.
Но это уже изврат, только для спец. приложений может подойти.