小编lar*_*am1的帖子

某些 AWS 实例上的 Google c2dm 瞬态 401 错误

当要求 c2dm 发送通知时,我们如何弄清楚为什么我们会在某些AWS实例上从Google c2dm推送服务中偶尔收到 401 错误?

这是一个暂时性的问题。所有 AWS 实例在向 Google c2dm 发送 HTTPS 请求时大多成功,有些实例 100% 的时间成功,有些实例偶尔会收到 401。因此,我们不认为这是我们的 c2dm 注册或我们已投入生产一年多的通知代码 (python) 的问题。401 错误始于 2012 年 5 月 16 日。

相反,我们认为 Amazon 基础设施中的某些东西,包括 DNS 缓存,可能以某种方式参与了这个问题。谷歌亲切地回复了我们的询问:

我会寻找可能导致不稳定通信的东西。尝试看看您是否在该机器的网络适配器上收到异常数量的损坏或丢失的数据包。

但是,我们没有看到任何“片状通信”的证据。出现问题时实例上的cpu负载接近于0,并且出现问题的机器上的以太网连接数平均低于没有问题的实例。

一个线索是 401 错误似乎是在一个块中发生的(几个发生在大约 4 分钟内),并且这些块通常相隔 10 到 60 分钟(尽管可能有很多小时没有错误)。我们没有看到 I/O 错误或“不稳定的通信”错误,只有来自 Google c2dm 的 401 错误。

服务器故障帖子让我们考虑在 AWS 上进行 DNS 缓存,因为它与 Google c2dm 服务提供的证书中主机名的 SSL 验证有关,但我们使用的 python 2.7 urllib2 似乎没有通过以下方式验证主机默认。

另一个线索是,我们使用“弹性 IP”功能更改了第一个出现问题的 Web 实例的 IP 地址:相同的、持续运行的实例,只是使用了一个新 IP。该实例在 4 天内 …

domain-name-system python amazon-web-services

5
推荐指数
1
解决办法
424
查看次数