170 похожих чатов

Всем привет подскажите способ создать один главный сервис который

при запуске будет поднимать другие микросервисы

Задача такая
1 сервис слушает tcp порт 3001 собирает данные и кладет их в бд и кидает пуш по API 3 сервису
2 сервис это ws client его задача подписка на сторонний ws сервис слушает событие и кладет данные в бд и кидает пуш по API 3 сервису
3 сервис ws Express REST API крутиться вся логика на него подписывается и забирает данные фронт

я знаю что можно запустить все по отдельности через pm2 но хотелось бы иметь один главный сервис написанный на node который смог бы мониторить остальные и в случае чего перезапустить микросервисы и отправить пуш админам о проблеме

может кто то делал что то подобное или есть готовые решение ?

8 ответов

15 просмотров

А как он будет перезапускать? Сервисы могут быть на разных машинах?

Maxim- Автор вопроса

все 3 сервиса на одной машине

Maxim- Автор вопроса

на счет как пока не знаю ищу способ

Тогда основной процесс должен запускать дочерние, тут хватит child_process

Maxim- Автор вопроса

Спасибо за информацию посмотрел запуск теперь можно сделать но этот способ не решает проблему мониторинга и перезапуска в случаи падание одного из сервисов

решает родитель может поймать событие выхода дочернего процесса, опять же в доке по модулю это описано на крайний случай можешь поднять служебные сокеты и пинговать дочек если кто-то не отвечает (завис, долгая синхронная операция или другие причины) - пытаться убить процесс и поднять его заново

Maxim- Автор вопроса

ок я чуток почитаю инфу спасибо

Вы сами назвали PM2, готовое решение, можно посмотреть ещё и systemd, supervisor, docker, kubernetes, rancher

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта