我們的大部分服務都在 Google 云上,但我們連接到 Azure 認知搜索以進行全文搜索。
從大約一個月前開始,應用引擎和認知搜索之間開始出現隨機延遲,請求持續花費 127.2-127.3 秒,即比正常請求多出 127 秒。這是專門針對認知搜索的請求,而不是基礎設施或代碼的任何其他部分。
奇怪的是,這些延遲不會出現在本地測驗、vms、k8s 或其他任何地方。盡管如此,在花了 3 周的時間來回答后,谷歌堅持認為這是由“丟包”引起的“天藍色問題”。它們確實表明一些請求連接到 ipv4,而其他請求連接到 ipv6 地址,但我在這里也沒有發現相關性。
什么樣的問題會導致如此特殊的延遲?
uj5u.com熱心網友回復:
這似乎是由于 IPv6 問題造成的,并且請求庫(或底層 python 基礎設施)在多次指數后退重試后切換到 IPv4,導致約 2^7-1 秒的延遲。
可以使用這個丑陋的 hack 來強制 IPv4 連接:
import socket
import requests.packages.urllib3.util.connection as urllib3_cn
# https://pythonadventures.wordpress.com/2019/06/28/force-requests-to-use-ipv4/
urllib3_cn.allowed_gai_family = lambda: socket.AF_INET # force IPv4
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491250.html
