Превышен предел скорости передачи URL-адреса Google 403

Используя google url shortener api, он работал нормально, пока я не начал тестировать при загрузке. Быстро начал возвращаться 403 Rate Limit Превышенные ошибки от Google, хотя я подписался на использование API, и он поставляется с 1 000 000 обращений в день. Я вижу запросы, поступающие в инструмент отчетности Google, и они просто отправляют обратно 403 для всего. 403 начали возвращаться примерно в 345/350 хитов API, продолжая часами.

Мысли?

Ответы

Ответ 1

API ограничивает запросы на 1 запрос/секунду/на пользователя.

Пользователь определяется как уникальный IP-адрес.

Итак, если вы проводили тестирование нагрузки с одного IP-адреса, это могло бы вызвать проблему ограничения скорости.

https://developers.google.com/analytics/devguides/reporting/mcf/v3/limits-quotas#general_api

Ответ 2

Я не думаю, что "1 запрос/в секунду/на пользователя". как написано в документе, на 100% правильно в моем случае, или в случае с коротким url shortener. (FYI: Я использую "Открытый API-доступ", а не "OAuth" )

У меня почти такая же проблема, но для меня, скорее всего, будет "Я получаю эту ошибку для некоторых URL-адресов в течение некоторого периода времени". Что это значит? Продолжайте читать.

Вот что я нашел:

  • Я могу использовать 10 потоков, чтобы использовать Google url shortener одновременно, но не всегда...
  • при обработке даже один URL-адрес терпит неудачу в одном потоке, другие потоки все равно могут получить другие URL-адреса.
  • когда URL-адрес терпит неудачу, и позже я снова попробовал тот же URL-адрес (даже никаких других процессов не работает, он по-прежнему не работает для некоторого ПЕРИОДА ВРЕМЕНИ). Даже я попытался добавить еще строку типа "& test = 1", это не помогает. Но если я перейду на другой URL-адрес, он будет работать.

Итак, я думаю, что на сервере google может быть кеш каждого URL-адреса. Если URL-адрес не работает, он должен подождать некоторое время, чтобы освободить кеш.

Итак, я должен написать какой-то жуткий код, подобный этому, чтобы решить мою проблему:

  • когда есть сбой, этот поток будет спать в течение 1 минуты (да 1 минута)
  • и продолжайте пробовать 10 раз (так что, может быть 10 минут для URL-адреса с ошибкой)

Однако этот жуткий код подходит для моего случая, потому что я использую ExecutorService с размером пула с фиксированным потоком, равным 10. Таким образом, если есть сбой, другие могут получить сокращенные URL-адреса. Это решает проблему... по крайней мере для меня.

Ответ 3

Вам нужно перейти к расширению Google Shortener, а в опции выберите "Предоставить доступ"

Ответ 4

Щелкните правой кнопкой мыши значок "Расширение", откройте "Параметры" и нажмите "Получить доступ" внизу.