背景

比如你有很多站點, 怎麼去判斷站點可以被全國各地用戶訪問呢?

方式一

在某臺機器上定時去模擬訪問站點, 來判斷站點通不通.

方式二

在地域不同的主機上分別去定時判斷站點通不通, 然後按照站點的粒度匯總各個區域的結果, 來判斷站點是否可訪問.

這是平時主要用的兩種檢測方式, 沒有所謂的優缺點,主要看使用的場景:

  • 如果是監控內網的站點:方式一就很適合,而且簡單.
  • 如果是外網站點, 方式二就更好. 模擬不同地域的網路,準確率更高.

下面內容都是針對方式二來寫的. 怎麼去設計一個監控外網站點可用性的監控系統.

架構

整個架構比較簡單, 主要包含兩部分:

主節點

負責管理需要監控的站點, 將站點任務下發到不同地域的檢測點執行並將結果收集上來.

檢測點

分佈在不同地域不同運營商下(移動、聯通、電信), 從主節點接受任務, 執行檢測,保存結果,等待主節點來取數據.

監測點這裡涉及的內容多:

  • 考慮並發性,同時檢測多少個站點呢
  • 檢測時間控制,不能由於各種原因導致檢測程序卡主
  • 反爬蟲機制,有些站點有加速樂等反爬蟲機制
  • 檢測節點容錯性, 檢測點掛掉不應該影響整體檢測
  • 支持完全模擬瀏覽器的檢測

結尾

實際以及代碼可以在這裡看

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

github.com
圖標

推薦閱讀:
相關文章