如何驗收跨市場代理故障轉移,避免地域資料被污染

水彩風格的全球網際網路區域透過受控主備代理閘道連接

代理故障轉移即使恢復 TCP 連線,也可能破壞資料集。如果面向美國的採集任務悄悄改用歐洲出口,頁面語言、貨幣、同意流程、庫存或廣告都可能改變。切換後繼續沿用 Cookie,又可能出現網路位置已改變、頁面市場卻仍停留原地的矛盾。無限制重試還會製造重複紀錄,把小故障放大成昂貴流量尖峰。

因此,驗收目標不能只是「請求再次成功」。合格的故障轉移必須在所需市場內恢復;身分改變時隔離狀態;遵守目標服務的退避提示;並盡量確保業務處理不重複。

只在你有權存取的目標、帳號與代理容量上執行測試。

劃分故障域

分別觀察以下層級:

  • 出口: 某個公網 IP 不再回應,或不再屬於要求的地域。
  • 閘道: 代理主機名稱或入口連接埠不可用。
  • 供應商區域: 同一市場內多個閘道同時異常。
  • 客戶端: DNS、TLS、驗證、連線池或本地網路造成假性代理故障。
  • 目標服務: 目標回傳限流或暫時錯誤,而代理本身健康。

不要直接終止整個任務來涵蓋所有情境。每次只注入一種故障,才能辨識真正失敗的層級。

測試前寫清楚路由政策

為每類任務規定明確順序:

  1. 在同一閘道和所需市場內更換出口;
  2. 切換到同一市場的備用閘道;
  3. 只有第二供應商能證明同一市場時才切換供應商;
  4. 所需市場不可用時停止並隔離任務;
  5. 只有業務明確允許時才使用其他市場。

在地化採集、廣告驗證、價格監控與市場研究通常應採取失敗即關閉。對這些任務來說,「任何健康國家」不是安全的備援方案。

記錄允許的國家、可選州/城市、可接受 ASN 類型、工作階段時長和最大恢復時間。利用住宅代理地域驗證指南核對真實出口,不要只相信請求標籤。

建立相互獨立的健康證據

分別探測代理閘道與受控目標。閘道連線成功只證明入口接受連線,不能證明所需市場存在可用出口。

如果生產客戶端分布在不同區域,應從多個客戶端區域進行低頻探測,並要求多次觀測一致後才宣告市場不可用。單一遠端探針也可能受自身網路路徑、DNS 或防火牆影響。

每次探測記錄 UTC 時間、客戶端區域、請求市場、觀測到的出口國家、閘道、供應商、匿名工作階段標識、DNS/TCP/TLS/首位元組耗時、HTTP 狀態、有限回應指紋、重試次數與切換層級。不要記錄代理密碼、完整 Cookie 或個人資料。

路由改變時隔離狀態

更換出口就是身分邊界。建立新的代理工作階段標籤;瀏覽器任務還要建立全新瀏覽器情境。除非流程有明確保留理由,否則清除目標 Cookie、本機儲存、Service Worker 與快取。

同時禁止 HTTP 連線池沿用舊路由建立的通道。可先以住宅代理工作階段黏著性測試區分真實工作階段變化和連線重用。

業務狀態應保存在瀏覽器外,包括任務 ID、預期市場、嘗試代數、負載校驗值與處理狀態。這樣既能拒絕舊路由遲到的回應,也不會遺失任務。

使用有限觸發器與滯回機制

不要因為一次慢回應就切換供應商。可採用如下規則:60 秒內三次獨立連線失敗才切換;至少兩個探針同意所需市場不可用;等待至少五分鐘再測試失敗層級;連續多次健康後逐步恢復流量。

滯回可防止兩條路由之間頻繁擺動。斷路器應按市場和故障域分別維護,而不是用全域開關關閉所有健康區域。

執行受控故障矩陣

先以小規模非生產樣本測試,速率始終低於目標和代理限制。

情境一:單一出口失效

讓一個測試工作階段過期或阻斷出口。確認新出口仍在同一市場、狀態已重設,且只恢復未完成任務。

情境二:閘道失效

讓主要測試閘道不可達。確認備用閘道建立全新連線,不繼承舊工作階段或通道。

情境三:市場資源不足

模擬所需市場沒有可用出口。除非明確允許跨市場切換,否則任務應停止或進入隔離佇列。

情境四:目標服務退避

讓受控端點回傳暫時性 503 或 429。若有 Retry-After,應把它視為等待時間提示,不能把目標錯誤誤判成代理市場故障。

情境五:部分慢故障

注入延遲、間歇 TLS 重設或部分不健康出口。確認以分位數為基礎的健康規則能辨識退化,又不會讓所有客戶端同時重試。

情境六:客戶端故障

注入錯誤的本地 DNS 結果、過期測試憑證或憑證鏈故障。確認客戶端不會為任何代理都無法修復的問題輪換所有市場。

強制執行重試預算

限制單一任務最大嘗試次數與整個工作池的最大重試速率。使用帶隨機抖動的指數退避,避免工作程序同步爆發。驗證、政策與請求格式等永久錯誤不得反覆重試。

每個可重試業務動作都要有冪等鍵或確定性任務鍵。在確認佇列項目前保存回應校驗值與完成標記。如果廢棄路由回傳遲到回應,當其嘗試代數不再等於目前任務時直接拒絕。

並行能力請另外參考代理並行飽和測試;容災演練不應意外變成壓力測試。

不只驗證 IP,也驗證業務輸出

每次切換後比較真實出口國家/區域/ASN 類型,頁面語言、貨幣和同意流程,符合市場預期的庫存或廣告素材,回應結構與必填欄位,重複/遺漏/衝突紀錄,以及可能覆蓋 IP 地理位置的 Cookie 或地區參數。

IP 國家正確但頁面市場錯誤,對地域敏感資料仍是恢復失敗。

設定量化驗收門檻

至少依市場和切換層級報告:恢復時間目標與 p95、同市場正確恢復率、誤切換與路由抖動率、重複與無效負載率、總嘗試次數除以原始任務數得到的重試放大倍數、放棄任務與遲到回應率,以及每筆有效紀錄的頻寬與成本。

範例門檻可以是:99% 任務在 90 秒內於同市場恢復;未授權跨市場切換為零;重複處理低於 0.1%;重試放大低於 1.2。最終門檻必須來自業務的法律、商業與資料品質要求,不能直接照抄範例。

發布與回復檢查清單

  • [ ] 已記錄必要與禁止的備援市場。
  • [ ] 健康探針可區分閘道、出口、目標與客戶端故障。
  • [ ] 市場級切換需要多次獨立觀測。
  • [ ] 身分改變後建立新工作階段與乾淨瀏覽器狀態。
  • [ ] 已實作重試預算、退避與隨機抖動。
  • [ ] 任務包含冪等鍵,並拒絕遲到回應。
  • [ ] 同時驗證真實地域與業務輸出。
  • [ ] 斷路器按市場與故障域隔離。
  • [ ] 已演練手動停止與同市場回復。
  • [ ] 日誌不含憑證、Cookie 與個人資料。

常見問題

市場沒有出口時,是否應自動切換國家?

只有流程明確允許時才可以。廣告驗證、在地價格與區域研究通常寧可暫停,也不應採集看似合理但屬於錯誤市場的資料。

切換後 IP 檢查成功就夠了嗎?

不夠。還要驗證語言、貨幣、同意流程、結構和任務身分。IP 改變後,Cookie 與應用設定仍可能保留舊地區。

多少次失敗才應切換?

沒有統一數字。應在限定時間窗內使用多個獨立觀測,再依誤切換率和恢復時間調整。

瀏覽器工作階段能否跨代理切換繼續使用?

技術上有時可行,但會混合身分與網路狀態。出口或市場改變時,建立新情境是更安全的預設選擇。

合規說明

代理故障轉移只應用於合法、獲授權的業務。遵守目標條款、速率限制、適用的 robots 指令、隱私義務與跨區域資料傳輸要求。不得利用市場切換規避存取控制、執法或同意要求。