У меня есть центральный сервер API, запускающий экземпляры рабочих кластера.У каждого экземпляра есть определенная большая работа, и могут быть манипуляции, которые я хочу сделать только на этом конкретном экземпляре.Это была грубая идея, которую я имел в виду:
- Сервер API с экспресс-мастером
- экземпляр 1: GET / instances / 1 / *
- экземпляр 2: GET / instances / 2 / *
Каждый экземпляр - это отдельный рабочий процесс, и я надеялся, что смогу делегировать все запросы API для конкретного работника непосредственно работнику (выполнять функции в этом работнике).
instance /: id действительно представляет WorkerID.
Клиент может запросить журналы, где workerID = x, поэтому GET / instances / x / logs.
Цель в том, чтобы мастер направил все запросы для экземпляра X в подпроцесс, обозначенный как x.
Это не для распределения нагрузки между рабочими, которые по сути являются клонами / зеркалами.
Каждый из моих работников может выполнять различные задачи, выполняемые долго (дни, недели, месяцы).Методы являются общими для всех работников, но если я вызываю / instances / x / logs, я хочу запросить это только в этом конкретном рабочем процессе.Это цель, которую я хочу выяснить.
// route these to subprocess x
GET /instances/x/logs
POST /instances/x/settings
// route these to subprocess y
GET /instances/y/logs
POST /instances/y/settings
// route these to subprocess z
GET /instances/z/logs
POST /instances/z/settings
// make a new worker process, returns worker ID as reference
POST /instances/
Я видел, что у меня может быть несколько экспресс-слушателей на одном и том же порту для разных процессов, но если я правильно понял, это автоматически компенсирует нагрузку с помощью экспресс,Я не могу направить конкретные запросы конкретным работникам в зависимости от пути, могу ли я?