Я разрабатываю приложение 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
отправляет сообщение одному из своих микроуслуг и затем полностью передает эти данные обратно.
Есть ли более простой способ сделать это? Например, возможность хранить таблицу идентификаторов процессов для каждого подпроцесса в таблице поиска и иметь возможность напрямую отправлять сообщения в этот процесс и из него, не проходя через тот, который первоначально породил его ?