Превышен предел скорости передачи 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
Щелкните правой кнопкой мыши значок "Расширение", откройте "Параметры" и нажмите "Получить доступ" внизу.