當業務需要大量IP的時候,該如何操作?每天產生IP量:w級,Easy

   當業務需要對外大量爬取數據的時候,往往會碰到被目標網站限流或者直接封堵。這時候就要進行層層應對,代碼要被改造成模擬人的行爲瀏覽器訪問目標網站,這中操作,當需要獲取目標網站數據量不大,時間充裕的情況下,足夠了。但當我們需要短時間內大併發爬取內容的時候,這隻從代碼上進行改造往往達不到效果;這個時候就需要進行大量的IP配合。

大量IP架構V1

當業務需要大量IP的時候,該如何操作?每天產生IP量:w級,Easy
在各地機房部署ADSL線路,利用定時任務不停調用ADSL重撥,從而刷新IP。

程序任務下載中心把任務程序包下發到各個節點,節點上任務運行爬取數據的工作。

缺點:

由於投入各地的機房,有些甚至私人機房,不太穩定,機器出問題的時候,投入太多人力處理。

ADSL申請監管加大,不好申請。

成本高。

爬取內容增大,這種佈線方式不利於擴容。

大量IP架構V2

當業務需要大量IP的時候,該如何操作?每天產生IP量:w級,Easy

本版因爲考慮到快速擴容引入容器,並搭配K8S進行集羣管理。

本版本丟棄ADSL,選用×××進行IP變化,可以是收費×××、免費×××等。

SQUID:用於爲服務提供請求代理。

隊列:用於接受重連×××指令,重連一次×××則IP會重新更換。

監控程序:1.接受指令,重連×××;2.監控×××網絡的連通性,如果掉線則重連。

×××-Client:×××客戶端。

任務集羣:上面跑着各需求的程序,當需要進行爬取數據時候通過鏈接squid代理進行對外訪問。

實施遇到的一些問題:

容器權限問題

在yaml部署文件中需要爲容器提供管理員權限:securityContext: {privileged: true}

內核問題

×××需要一些系統內核支持,所以,需要進行相應掛載。

volumeMounts:

        - {mountPath: /lib/modules, name: modules}

通過該命令進行判斷:cat /dev/net/tun

返回結果爲cat: /dev/net/tun: File descriptor in bad state:就表示該系統支持。

現已跑一段時間,情況穩定。

現情況如下:

併發在線容器:幾百+。年內預計會增長到k+

現每天產生IP量:10幾w 很輕鬆。

更多文章,請關注×××公衆號:輕量運維。
當業務需要大量IP的時候,該如何操作?每天產生IP量:w級,Easy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章