服务“gmail.googleapis.com”的配额指标“查询”和限制“每个用户每分钟的查询数”超出配额

Posted

技术标签:

【中文标题】服务“gmail.googleapis.com”的配额指标“查询”和限制“每个用户每分钟的查询数”超出配额【英文标题】:Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'gmail.googleapis.com' 【发布时间】:2020-10-30 02:15:41 【问题描述】:

我们的应用程序使用管理员已为整个域授权的服务帐户。使用此服务帐户,我们的应用程序可以使用 GetMessage 等 Gmail API 访问域用户的电子邮件。

突然间,从本周开始,我们开始间歇性地收到错误

Quota exceeded for quota metric 'Queries' and limit 'Queries per minute per user' of service 'gmail.googleapis.com' for consumer 'project_number:XYZ

我们的应用程序或访问电子邮件的频率没有变化。我们在使用 API 时使用 10 的批量大小。

GCP 信息中心中的“超出配额的错误计数(10 秒)- 每分钟查询数”图表为空。所以我们真的不确定发生了什么以及为什么我们突然达到配额限制。

此外,当我的应用使用服务帐户访问用户邮箱时,我不确定如何应用“每用户”限制。至少对我来说,这方面的文档很模糊。

这些错误确实影响了我们为客户服务的能力。此外,不知道为什么会出现这些错误正在动摇我们对 Gmail API 的信心。

非常感谢您在这方面的任何帮助。

谢谢

更新: 今天我们看到很多

"User-rate limit exceeded.  Retry after <timestamp>"

错误。似乎这一次我们达到了除“每分钟查询数”之外的一些配额限制。当我查看我的客户端实施并找出发生这种情况的原因时,请随时分享您可能提出的任何建议。

谢谢。

【问题讨论】:

批处理不会帮助您减慢您的速度。每个用户的限制由 IP 地址应用。您的服务帐号是单个用户。 你能分享你正在处理的代码的相关部分吗?您是否考虑过使用指数退避等技术? 昨天我们也出现了完全相同的错误,我想这是第一次,但我们这几天也在调整我们的前端代码,所以我不确定是不是这样。 @DaImTo 那么,“每用户”限制将适用于我的服务帐户,将其视为单个用户?或者“每用户”限制是否应用于我尝试使用我的服务帐户访问的目标邮箱?另外,我的代码是在云端运行的,所以 Google 看到的外部 IP 可能是一样的。这会是个问题吗?如何绕过它?使用服务帐户背后的想法是能够为可能拥有数百个电子邮件帐户的整个域提供服务。但是,如果要应用配额,请考虑我的客户端应用程序的单个用户/IP,这将是一个问题。 @Iamblichus 我们的客户端代码确实有指数回退,这就是某些重试成功的原因。然而,客户端代码几个月来没有改变,但突然间我们看到了这些错误。就好像突然之间客户端开始运行得更快,导致每分钟查询更多,这没有任何意义。 【参考方案1】:

Google Analytics 对 API 请求有限制和配额。你可以增加它。如果您不想这样做,每日配额会在太平洋标准时间午夜刷新。

【讨论】:

这个问题和谷歌分析有什么关系?

以上是关于服务“gmail.googleapis.com”的配额指标“查询”和限制“每个用户每分钟的查询数”超出配额的主要内容,如果未能解决你的问题,请参考以下文章

微服务基础服务的基本组件

服务发现的基本原理

OSGI的系统服务

Android四大组件——Service后台服务前台服务IntentService跨进程服务无障碍服务系统服务

微服务 六:服务网关

服务治理