一、背景說明1、為什麼要做IP限流
網路世界中,真實的使用者與爬蟲機器人等混雜在一起,正常的請求與異常請求也是相互交織,作為服務的提供方都希望請求來自於真實的使用者的真實請求,這麼才能夠達到成本收益的最大化,但是總會有一些人來非法嘗試獲取提供方的資訊,爬取有價值的資料供自己使用。作為資料的擁有者,肯定不希望自己的資料被非常利用,因為就需要做一些防禦措施,達到資料保護的目的,IP限流就是其中一種比較有效的方案。因為通常用於爬取資料的爬蟲機器人,都是在一臺或者固定的幾臺伺服器上執行的資料爬取操作(當然他可以購買更多的動態,只是會花更多的成本),針對這種訪問量異常的IP進行記錄和跟蹤,然後就可以確認來自這些IP的請求是不是真實的使用者請求了。
2、要達到的目標監控IP的訪問行為,將其訪問量及訪問行為進行記錄(完成);支援手動將單個IP、IP段加入到黑名單中,並對加入到黑名單中的IP進行過濾(完成);支援手動將單個IP、IP段加入到白名單中,並對加入到白名單中的IP進行過濾(完成);在基於一定的規則下,能夠自動將異常訪問的IP加入的IP黑名單中(完成);並對異常訪問的IP進行告警,並支援應用自定義IP黑名單發現規則及告警實現(待實現);支援針對叢集應用進行彙總統計(完成);高效的資料統計、儲存及讀取,減少對應用效率的影響,目前存在Redis中(完成);支援對規則不同儲存的擴充套件支援,如何將規則持久化到DB中、ZK中等,實現已經抽象化,Redis的已經完成,其它儲存邏輯可根據情況自定義(完成);能夠支援按分緯度及秒緯度對訪問的IP進行統計(完成);有一定的管理介面,能夠對黑名單及TOP IP的訪問情況進行查詢及操作(完成);支援將統計資料輸出到不同的儲存,如Redis、Influxdb等,實現已經抽象化,Redis的已經完成,其它儲存邏輯可根據情況自定義(完成);支援多平臺對訪問資料進行呈現,如以後資料可以在Grafana中呈現,目前有基本的管理介面,更精細的管理介面及Grafana中展示資料後期再考慮實現(部分完成);支援對IP及IP段訪問最高TPS進行統一配置(完成),也支援對單個IP及IP段進行訪問控制(完成);多應用叢集統一流量管控平臺,可管理所有接入的應用的訪問情況(完成);二、架構1、互動架構2、實現架構
最新評論