переход с монолита на микросервисную архитектуру

#javascript #node.js #architecture #microservices #monolithic

#javascript #node.js #архитектура #микросервисы #монолитный

Вопрос:

Я запустил свои серверные службы на основе архитектуры Monolith с использованием Node.js экспресс. Приложение становится большим, и мне нужно перейти с Monolith на микросервисную архитектуру.

Я решил использовать методы REDIS pub / sub для обмена сообщениями между шлюзом API и микросервисами. Что несомненно, так это то, что мне нужно создать тему для каждого отдельного API, доступного в каждом микросервисе, а затем начать прослушивание отправленного события из шлюза API для взаимодействия и возврата соответствующих данных из микросервиса в шлюз и возврата их в конечную точку.

Например, если конечная точка вызывает API для сбора списка продуктов, внутри микросервиса продукта должен быть открыт прослушиватель, который прослушивает событие списка, чтобы сгенерировать список и вернуться через шлюз в конечную точку.

Вопрос в том, есть ли какое-либо решение, доступное для меня, чтобы либо не создавать событие для каждого отдельного API внутри моих микросервисов, либо у меня нет способа, и мне нужно создать прослушиватель событий для каждого API, который у меня есть?

Ответ №1:

Существует несколько шаблонов для рефакторинга монолитного приложения на микросервис. например, вы можете использовать уровень защиты от коррупции, чтобы запустить его, а start — отделить ваш ограниченный контекст один за другим от нового микросервиса. Затем вы можете использовать шлюз для обработки запроса вашего клиента и аутентификации. Для реализации быстрого выделенного шлюза вы можете использовать Ocelot. Но не забывайте, что для реализации микросервисной структуры важно знать подробности о Domain-Driven Design (DDD) и некоторых других шаблонах, таких как CQRS и некоторые брокеры сообщений, такие как RabbitMQ.

для начала вы можете прочитать и перейти по ссылкам ниже:

Рефакторинг монолита на микросервисы

Монолиты к микросервисам с использованием дизайна, управляемого доменом

Комментарии:

1. спасибо за предложение, Ocelot — это API-шлюз на основе .net, тогда как мой стек — это JavaScript, и мне нужно создать шлюз под node.js .