背景

比如你有很多站点, 怎么去判断站点可以被全国各地用户访问呢?

方式一

在某台机器上定时去模拟访问站点, 来判断站点通不通.

方式二

在地域不同的主机上分别去定时判断站点通不通, 然后按照站点的粒度汇总各个区域的结果, 来判断站点是否可访问.

这是平时主要用的两种检测方式, 没有所谓的优缺点,主要看使用的场景:

  • 如果是监控内网的站点:方式一就很适合,而且简单.
  • 如果是外网站点, 方式二就更好. 模拟不同地域的网路,准确率更高.

下面内容都是针对方式二来写的. 怎么去设计一个监控外网站点可用性的监控系统.

架构

整个架构比较简单, 主要包含两部分:

主节点

负责管理需要监控的站点, 将站点任务下发到不同地域的检测点执行并将结果收集上来.

检测点

分布在不同地域不同运营商下(移动、联通、电信), 从主节点接受任务, 执行检测,保存结果,等待主节点来取数据.

监测点这里涉及的内容多:

  • 考虑并发性,同时检测多少个站点呢
  • 检测时间控制,不能由于各种原因导致检测程序卡主
  • 反爬虫机制,有些站点有加速乐等反爬虫机制
  • 检测节点容错性, 检测点挂掉不应该影响整体检测
  • 支持完全模拟浏览器的检测

结尾

实际以及代码可以在这里看

https://github.com/510908220/site-monitor?

github.com
图标

推荐阅读:
相关文章