轻量级心跳应用的推荐框架?

时间:2018-07-05 12:49:54

标签: node.js express

我要监视多个微服务的正常运行时间。我想打电话给每个微服务以评估其状态。如果呼叫成功,我知道应用程序为“启动”。

对于一个过于简化的用例,说我下面有以下三个电话。我想每10分钟打一次电话给他们。如果所有三个响应都为200,我想用单词“ UP”修改HTML文件,否则该文件应带有单词“ DOWN”。

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

Express / Node.js是此轻量级应用程序的理想框架吗?如果是这样,有人可以指出我可以帮助我入门的GitHub存根吗?谢谢!

2 个答案:

答案 0 :(得分:1)

Express和Restify如果只是API的话,都适合这种示例。最重要的是您关于返回HTML的注意事项。

  

我想用单词“ UP”修改HTML文件,否则该文件应带有单词“ DOWN”。

这对于Express更为合适,因为它允许您使用诸如把手,胡须,哈巴狗之类的库来进行HTML转换。

您可以使用计划的作业来检查三个应用程序的状态,并将最新状态检查存储在某个地方(数据库,平面文件等)。然后,对这项新服务上的端点/status的请求将查询最新的状态检查,并返回一些模板化的HTML(使用诸如把手)。

或者,如果您对一些Bash感到满意,那么如果您不关心正常运行时间历史记录或其他复杂性,则可以使用linux / unix工具来执行此操作。

您可以设置apache或nginx以在/status端点上提供文件。然后使用cron作业ping您所有的健康检查URL。如果它们都没有错误返回,则可以将nginx提供的文件更新为“ UP”,如果返回任何错误,请将文本更改为“ DOWN”。

如果您遇到麻烦,也可以在Windows上完成这种Unix方法。它的重量尽可能轻,并且非常易于部署和纠正,但是如果您想在将来大幅扩展此应用程序(例如,存储时间历史记录),则不妨使用Express。 / p>

答案 1 :(得分:1)

框架?你的孩子被宠坏了。当我还是个小伙子的时候,这里的所有地方过去都是田野...

上下创建两个html模板文件,并根据需要设置它们。

然后,您仅需要每10分钟运行几行bash作为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个curl请求,一旦失败就会停止,然后将向上或向下模板复制到您的状态页的位置。