网站可用性监控系统之简介
背景
比如你有很多站点, 怎么去判断站点可以被全国各地用户访问呢?
方式一
在某台机器上定时去模拟访问站点, 来判断站点通不通.
方式二
在地域不同的主机上分别去定时判断站点通不通, 然后按照站点的粒度汇总各个区域的结果, 来判断站点是否可访问.
这是平时主要用的两种检测方式, 没有所谓的优缺点,主要看使用的场景:
- 如果是监控内网的站点:方式一就很适合,而且简单.
- 如果是外网站点, 方式二就更好. 模拟不同地域的网路,准确率更高.
下面内容都是针对方式二来写的. 怎么去设计一个监控外网站点可用性的监控系统.
架构
整个架构比较简单, 主要包含两部分:
主节点
负责管理需要监控的站点, 将站点任务下发到不同地域的检测点执行并将结果收集上来.
检测点
分布在不同地域不同运营商下(移动、联通、电信), 从主节点接受任务, 执行检测,保存结果,等待主节点来取数据.
监测点这里涉及的内容多:
- 考虑并发性,同时检测多少个站点呢
- 检测时间控制,不能由于各种原因导致检测程序卡主
- 反爬虫机制,有些站点有加速乐等反爬虫机制
- 检测节点容错性, 检测点挂掉不应该影响整体检测
- 支持完全模拟浏览器的检测
结尾
实际以及代码可以在这里看
https://github.com/510908220/site-monitor推荐阅读: