【问题标题】:Delays of 127s between google app engine and azure cognitive search谷歌应用引擎和 Azure 认知搜索之间的 127 延迟
【发布时间】:2022-06-15 16:24:01
【问题描述】:
我们的大部分服务都在 Google 云上,但我们连接到 Azure 认知搜索以进行全文搜索。
从大约一个月前开始,应用引擎和认知搜索之间开始出现随机延迟,请求持续花费 127.2-127.3 秒,即比正常请求多出 127 秒。这是专门针对认知搜索的请求,而不是基础设施或代码的任何其他部分。
奇怪的是,这些延迟不会出现在本地测试、vms、k8s 或其他任何地方。尽管如此,在花了 3 周的时间来回答后,谷歌坚持认为这是由“丢包”引起的“天蓝色问题”。它们确实表明一些请求连接到 ipv4,而另一些请求连接到 ipv6 地址,但我在这里也没有发现相关性。
什么样的问题会导致如此特殊的延迟?
【问题讨论】:
标签:
google-app-engine
networking
ipv6
azure-cognitive-search
【解决方案1】:
这似乎是由于 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