Обработка ответа на рабочий процесс в NodeJs - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь спроектировать службу, следуя шаблону разделения ответственности командного запроса (CQRS) в NodeJ.Для обработки сегрегации я использую следующий подход:

  1. Создание отдельных рабочих для запросов и выполнения команд
  2. Предоставление их с помощью REST API

REST API был разработан с ExpressJs.Все конечные точки, начинающиеся с ключевых слов update, create и delete, рассматриваются как команды;все конечные точки с «get» или «find» обрабатываются как запросы.

Когда запрос достигает своего назначенного обработчика, происходит одно из следующих действий:

  1. Если это команда, ответ отправляется сразу после делегирования задачи рабочему процессу;другие службы уведомляются путем генерации соответствующих событий, когда мастер-процесс получает сообщение о завершении от работника.

  2. Если это запрос, ответ обрабатывается назначенным работником, который может использовать ссылкусоединения с базой данных, передаваемого в качестве аргументов для выборки и отправки результата запроса.

Для (2) выше я пытаюсь создать механизм, который каким-то образом «передает» объект ответаработник, который, затем может завершить запрос.Можно ли это сделать путем «клонирования» объекта ответа и передачи его в виде простых аргументов?Если нет, каков предпочтительный способ достижения этого?

1 Ответ

0 голосов
/ 16 октября 2018

Я думаю, что в (2) лучше передать запрос на рабочий процесс, который возвращается к главному процессу, который затем отправляет запрос обратно.

Прежде всего, вы действительно не хотите предоставлять рабочим процессам «доступ» извне.Все они должны быть внутренними работниками, управляемыми основным процессом.

Во-вторых, задача сервера Express - получать запросы, что-то с ними делать, а затем возвращать результат.Кажется слишком сложным пытаться передать сообщение работнику.

Если вы действительно беспокоитесь о том, что ваш сервер Express перегружен запросами, вам следует рассмотреть что-то вроде Docker, чтобы создать «рой» изэкспресс-экземпляры.

...