Я разрабатываю приложение NodeJS, которое загружает, анализирует и использует базовые методы машинного обучения на общедоступных данных из нескольких различных источников. Это может быть дорогостоящим с точки зрения вычислений, и чтобы избежать переполнения основного цикла событий моего приложения, я хотел бы использовать дочерние процессы / микросервисы для изоляции каждой основной задачи в ее собственном процессе.
В идеале разделение процесса выглядело бы примерно так:
Main Process
|-Data Source A
| |- Data Downloading Microservice
| |- Data Parsing Microservice
| |- Main Computation Microservice
|-Data Source B
| |- Data Downloading Microservice
| |- Data Parsing Microservice
| |- Main Computation Microservice
...
Насколько я понимаю, передача данных и связь между каждым из этих процессов будут ограничены, и когда придет время для доступа к определенной части информации из одного из дочерних процессов Data Source, мне придется отправить сообщение от Main Process на процесс Data Source, а затем попросите процесс Data Source отправить сообщение одному из своих микросервисов, а затем полностью передать эти данные обратно.
Есть ли более простой способ сделать это? Например, возможность хранить таблицу идентификаторов процессов для каждого подпроцесса в таблице поиска и иметь возможность напрямую отправлять сообщения в этот процесс и из него, не просматривая тот, который изначально его породил?
@NeilLunn Именно то, что я искал, просто не знал терминологии. Спасибо!





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