Рекомендуемые рамки для легкого приложения сердцебиения? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть несколько микросервисов, которые я хочу отслеживать в режиме безотказной работы. Я хотел бы позвонить в каждый микросервис, чтобы оценить его состояние. Если вызов успешен, я знаю, что приложение "UP".

Для слишком упрощенного варианта использования, скажем, у меня есть три следующих вызова ниже. Я хочу звонить каждому из них каждые 10 минут. Если все три ответят 200, я хочу изменить файл HTML словом «UP», в противном случае файл должен иметь слово «DOWN».

GET /api/movies/$movieId
POST /api/movies
DELETE api/movies/$movieId

Является ли Express / Node.js хорошей структурой для этого легкого приложения? Если так, может кто-то указать мне на заглушку GitHub, которая может начать меня? Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Framework? Вы, дети, избалованы. Когда я был мальчиком, все это время здесь были поля ...

Создайте два html-файла для шаблонов вверх и вниз, сделайте их такими, какими хотите.

Тогда вам просто нужно запускать несколько строк bash каждые 10 минут в качестве задания cron. В качестве основного примера создайте statuspage.sh:

#!/bin/bash
for http in GET POST DELETE
do
    res=$(curl -s -o /dev/null -w "%{http_code}" -X $http  https://$1)
    if [ $res -ne 200 ]
    then
        cp /path/to/template/down.html /var/www/html/statuspage.html
        exit $res
    fi
done
cp /path/to/template/up.html /var/www/html/statuspage.html

Сделайте его исполняемым chmod +x statuspage.sh и работайте так ./statuspage.sh "www.example.com/api"

3 запроса скручивания, прекращение работы при сбое, затем копирование шаблона «вверх» или «вниз» в расположение страницы состояния, в зависимости от ситуации.

0 голосов
/ 05 июля 2018

И Express, и Restify подойдут для такого рода примера, если они просто API. Клинкером станет ваша заметка о возврате HTML.

Я хочу изменить файл HTML словом «UP», в противном случае файл должен иметь слово «DOWN».

Это будет более подходящим для Express, поскольку позволяет использовать такие библиотеки, как руль, усы, мопс и т. Д. Для выполнения этого преобразования HTML.

Вы можете использовать запланированное задание для проверки состояния ваших трех приложений, сохранения последней проверки состояния (база данных, плоский файл и т. Д.). Затем запрос к конечной точке, такой как /status, в этой новой службе будет искать последнюю проверку статуса и возвращать некоторый шаблонный HTML (используя что-то вроде руля).

В качестве альтернативы, если вам не безразличен Bash, вы можете просто использовать инструменты linux / unix, чтобы сделать это, если вас не волнует история обновлений или дополнительные сложности.

Вы можете настроить apache или nginx для обслуживания файла на конечной точке /status. Затем используйте задание cron для проверки всех ваших URL-адресов проверки работоспособности. Если все они возвращаются без ошибок, вы можете обновить файл, обслуживаемый nginx, на «UP», а если появятся какие-либо ошибки, изменить текст на «DOWN».

Этот подход Unix также может быть сделан на окнах, если это ваш джем. Он будет настолько легким, насколько вы сможете получить, и очень простым в развертывании и исправлении, но если вы хотите значительно расширить это приложение в будущем (например, сохраняя историю времени), вы можете обратиться к Express.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...