YARL: как мы развиваем распределённый Rate Limiter

Привет, это Всеволод Иванов и Артём Икчурин из Yandex Infrastructure — в нашей инфраструктурной команде Cloud Storage Services мы занимаемся разработкой хранилищ, которые внутри компании используются самыми разными сервисами. В Яндексе есть несколько систем хранения для разных задач, в том числе объектное хранилище для неструктурированных данных. Несколько лет назад мы искали способы ограничить нагрузку на внутренний сервис S3 — так появилось наше собственное решение Yet Another Rate Limiter, или YARL, о котором мы уже писали на Хабре . Сегодня расскажем, как развивается наш лимитер. Так что если вам интересны высокие нагрузки, рекомендуем ознакомиться с предыдущей статьёй и затем вместе с нами отправиться под кат за продолжением.

https://habr.com/ru/companies/yandex_cloud_and_infra/articles/1034852/

#yarl #rate_limiter #rate_limiting #балансировка_нагрузки

YARL: как мы развиваем распределённый Rate Limiter

Привет, это Всеволод Иванов и Артём Икчурин из Yandex Infrastructure — в нашей инфраструктурной команде Cloud Storage Services мы занимаемся разработкой хранилищ, которые внутри...

Хабр

Я заколебался искать запятую в коде бота — и написал библиотеку, чтобы диалоги жили в YAML

Я три года пилю Telegram-бот для одного B2C-продукта. В пятницу вечером маркетолог попросил убрать запятую — я потратил двадцать минут на одну запятую, потому что текст был размазан по семи питон-файлам. И тут меня переклинило. Так появилась библиотека, где все диалоги бота живут в одном YAML — с клавиатурами, медиа, условиями и опциональной очередью под лимит Telegram. Выложил на PyPI, делюсь. И что?

https://habr.com/ru/articles/1035714/

#aiogram #python #telegram_bots #yaml #open_source #python_библиотека #telegram_bot_api #message_queue #rate_limiting

Я заколебался искать запятую в коде бота — и написал библиотеку, чтобы диалоги жили в YAML

Дисклеймер: статья будет про Telegram-бота на Python и aiogram. Если ты пишешь ботов на чём-то ещё — листай, тут тебя расстроят. Если не пишешь вообще — оставайся, иногда полезно посмотреть, как...

Хабр

Rails 7.2+ 내장 rate_limit 기능을 활용한 프로덕션 속도 제한 적용 가이드

Rails 7.2부터 별도의 Gem 없이 컨트롤러 레벨에서 직접 요청 속도를 제한할 수 있는 rate_limit API가 내장되었다.

🔗 원문 보기

Rails 7.2+ 내장 rate_limit 기능을 활용한 프로덕션 속도 제한 적용 가이드

Rails 7.2부터 별도의 Gem 없이 컨트롤러 레벨에서 직접 요청 속도를 제한할 수 있는 rate_limit API가 내장되었다.

Ruby-News | 루비 AI 뉴스

Интеграция Google Gemini API в асинхронный Telegram-бот на aiogram 3.x и Python

В прошлую пятницу, ровно в 18:47, когда я уже мысленно открывал великолепный, наполненный витаминами, напиток,, мне прилетело сообщение от тимлида: «Бот лежит, пользователи жалуются, Gemini API возвращает 429». Наш корпоративный Telegram-бот, который должен был помогать саппорту отвечать на тикеты, просто встал колом. Причина оказалась до банальности простой: мы не учли rate limiting и думали, что 50 RPM (запросов в минуту) на бесплатном тарифе — это «бесконечно много». С тех пор мы переписали архитектуру, добавили очереди, кэширование и middleware для retry. В этой статье разберу, как с нуля подружить Gemini API с Telegram-ботом на aiogram 3.x, не наступая на те же грабли.

https://habr.com/ru/articles/1025300/

#gemini_api #telegram_бот #aiogram #python #llm #асинхронное_программирование #rate_limiting

Интеграция Google Gemini API в асинхронный Telegram-бот на aiogram 3.x и Python

В прошлую пятницу, ровно в 18:47, когда я уже мысленно открывал великолепный, наполненный витаминами, напиток, мне прилетело сообщение от тимлида: «Бот лежит, пользователи жалуются, Gemini API...

Хабр

Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

У меня есть платформа для работы с метафорическими ассоциативными картами. Это инструмент психологов, коучей: колода картинок, вопросы, разговор. Звучит нишево, но суть задачи универсальна – авторский визуальный контент в вебе, который надо защитить от массового скачивания и пиратства. При этом контент загружают сами пользователи. Если вы делаете галерею, маркетплейс иллюстраций, образовательную платформу с визуалами или любой сервис, где картинки – это ценность, а не декорация, эта статья для вас. Я расскажу, как выстроил многослойную защиту изображений, не превращая при этом продукт в крепость, из которой неудобно пользоваться.

https://habr.com/ru/articles/1004580/

#WebCrypto_API #защита_изображений #водяные_знаки #UGC #Canvas_API #тайлинг #ECDSA #антипиратство #OffscreenCanvas #rate_limiting

Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

У меня есть платформа для работы с метафорическими ассоциативными картами. Это инструмент психологов, коучей: колода картинок, вопросы, разговор. Звучит нишево, но суть задачи универсальна – авторский...

Хабр

Как я написал Telegram-бота для SEO-аудита и не дал ему стать инструментом для атак

Рекомендация по КДПВ: Практический гайд по созданию Telegram-бота для автоматизированного анализа сайта: broken links, базовый security-check, отчёты. Минимум теории — максимум рабочего кода.

https://habr.com/ru/articles/996844/

#Telegram_бот #Python #SSRF #rate_limiting #Redis #SEO_аудит #БаденБаден #pyTelegramBotAPI #DNS_rebinding #битые_ссылки

Как я написал Telegram-бота для SEO-аудита и не дал ему стать инструментом для атак

Вступление (до ката) Проверить мета-теги на одной странице — дело пяти минут. Найти битые ссылки на сайте из 500 страниц — уже задача на вечер. А если нужно ещё проанализировать тексты на...

Хабр

Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи

Бывало ли у вас так что задача на час максимум в результате занимает целый рабочий день или даже больше? Почему так происходит? Нужно ли тестировать сторонние библиотеки? Есть ли польза от типичных задач для собеседований? Когда "костыль" вполне рабочее решение? Частные ответы на все эти, казалось бы не связанные, вопросы попытаемся найти в непридуманной истории фичи, которая изначально казалась на 5 минут, а вышло...

https://habr.com/ru/articles/983196/

#java #rate_limiting

Ограничь меня полностью! Или история одной ма-а-а-аленькой фичи

Ничто не предвещало беды, просто очередная минорная фича в проекте. Необходимо ограничить количество вызовов определенного функционала внутри сервиса. Если бы это была классическая задача защиты от...

Хабр

Автостопом по граблям: асинхронное лимитирование запросов в Python

Одним солнечным днём мне прилетела задача - написать асинхронный механизм выгрузки данных по API. И тут началось: наивные решения, которые не работают, теоретически правильные концепции, разваливающиеся на практике, и много других неожиданных граблей. В статье я делюсь своим опытом побед и провалов на поприще асинхронного лимитирования запросов: с какими проблемами столкнулся, какие шишки набил и какие инсайты получил по ходу дела. В финале прихожу к решению, которое в итоге оказалось стабильным и продакшн-реди.

https://habr.com/ru/articles/983066/

#python #asyncio #rate_limiting #etl #async_pattern

Автостопом по граблям: асинхронное лимитирование запросов в Python

На днях мне прилетела задача, в которой нужно было вычерпывать данные по HTTP с такими вводными: Есть ограничение по количеству запросов в минуту Объём данных - миллионы записей Один запрос...

Хабр

Как мы загрузили историю 287 валютных пар с лимитом 8 запросов в минуту

Попробуйте найти исторические курсы для пар вроде «доллар к афгани» или «евро к таджикскому сомони». Данные либо платные, либо их просто нет в виде готового датасета. Мы решили эту проблему в рамках своего проекта, хотя единственный подходящий API диктовал суровые условия: 8 запросов в минуту и 5000 дней за раз. Получилось! Наш Python-скрипт аккуратно, чанк за чанком, собрал историю всех 287 пар за 4.5 часа, ни разу не превысив лимит. Теперь все эти данные — более миллиона строк — лежат в открытом доступе на GitHub. В статье делюсь техническими деталями, как выстроить такую загрузку, и уроками, которые мы извлекли.

https://habr.com/ru/articles/983024/

#Python #Data_Engineering #финансовые_данные #валютные_пары #ETLпроцесс #GitHub_Pages #opensource_датасет #исторические_котировки #rate_limiting #Twelve_Data_API

Как мы загрузили историю 287 валютных пар с лимитом 8 запросов в минуту

Граф связей 145 валют проекта AbsCur3 Граф валютных связей: 145 вершин, 287 рёбер — основа для расчёта абсолютных курсов Вы когда-нибудь пытались найти исторические данные по курсу доллара к афгани...

Хабр

Что скрывает ваш API Gateway

В современном мире цифровых сервисов и микросервисной архитектуры, предоставление внешнего API становится критически важной задачей для любого бизнеса. Хорошо спроектированный и надежный API — это ворота, через которые ваши данные и функциональность взаимодействуют с внешним миром: мобильными приложениями, веб‑сайтами, партнерскими сервисами и даже внутренними клиентами.

https://habr.com/ru/companies/otus/articles/944940/

#API_Gateway #микросервисы #микросервисная_архитектура #Spring_Boot #Spring_Cloud_Gateway #маршрутизация_запросов #аутентификация_и_авторизация #rate_limiting

Что скрывает ваш API Gateway

Автор статьи: Сергей Прощаев @sproshchaev Руководитель направления Java‑разработки в FinTech Введение В современном мире цифровых сервисов и микросервисной архитектуры, предоставление...

Хабр