代码之家  ›  专栏  ›  技术社区  ›  EricPSU

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

  •  0
  • EricPSU  · 技术社区  · 6 年前

    我有很多微服务要监控正常运行时间。我想给每个微服务打个电话来评估它的状态。如果调用成功,我知道应用程序“启动”。

    对于过于简化的用例,假设我有以下三个调用。我想每10分钟给他们每个人打一个电话。如果这三个都用200来响应,我想用“up”来修改一个html文件,否则文件应该有“down”这个词。

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

    express/node.js是这个轻量级应用程序的好框架吗?如果是的话,有人能给我指一个github存根吗?谢谢!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Elliot Blackburn    6 年前

    对于这类例子来说,如果express和restify都只是api的话,那么它们都是好的,关键是你要注意返回html。

    我想用“up”修改一个html文件,否则这个文件应该有“down”这个词。

    这对于express来说更合适,因为它允许您使用诸如把手、胡子、哈巴狗等库来进行html转换。

    您可以使用计划的作业检查三个应用程序的状态,将最新的状态检查存储在某个地方(数据库、平面文件等)。然后对端点的请求,例如 /status 在这个新的服务中,将查找最新的状态检查,并返回一些模板化的html(使用类似于把手的东西)。

    或者,如果您对BASH有点满意,您可能只需使用LINUX/UNIX工具就可以做到这一点,如果您不关心时间过长或更复杂的话。

    您可以设置apache或nginx在 /地位 终点。然后使用cron作业ping所有健康检查url。如果它们都返回而没有错误,则可以更新nginx提供的文件,使其显示“up”,如果返回任何错误,则将文本更改为“down”。

    如果这是你的问题,这种unix方法也可以在windows上实现。它将是尽可能轻的重量,非常容易部署和纠正,但如果你想在未来显着扩展这个应用程序(例如存储时间历史),你可能希望回到表达。

        2
  •  1
  •   miknik    6 年前

    框架?你们被宠坏了。当我还是个孩子的时候这里曾经是田野…

    创建两个上下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请求,一个失败就停止,然后将up或down模板复制到状态页的位置(如果适用)。