home.social

#rate_limiting — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #rate_limiting, aggregated by home.social.

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

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

    habr.com/ru/companies/yandex_c

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

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

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

    habr.com/ru/companies/yandex_c

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

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

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

    habr.com/ru/companies/yandex_c

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

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

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

    habr.com/ru/companies/yandex_c

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

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

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

    habr.com/ru/articles/1035714/

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

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

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

    habr.com/ru/articles/1035714/

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

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

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

    habr.com/ru/articles/1035714/

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

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

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

    habr.com/ru/articles/1035714/

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

  9. Интеграция 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, не наступая на те же грабли.

    habr.com/ru/articles/1025300/

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

  10. Интеграция 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, не наступая на те же грабли.

    habr.com/ru/articles/1025300/

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

  11. Интеграция 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, не наступая на те же грабли.

    habr.com/ru/articles/1025300/

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

  12. Интеграция 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, не наступая на те же грабли.

    habr.com/ru/articles/1025300/

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

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

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

    habr.com/ru/articles/1004580/

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

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

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

    habr.com/ru/articles/1004580/

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

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

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

    habr.com/ru/articles/1004580/

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

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

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

    habr.com/ru/articles/1004580/

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

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

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

    habr.com/ru/articles/996844/

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

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

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

    habr.com/ru/articles/996844/

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

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

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

    habr.com/ru/articles/996844/

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

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

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

    habr.com/ru/articles/996844/

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

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

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

    habr.com/ru/articles/983196/

    #java #rate_limiting

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

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

    habr.com/ru/articles/983066/

    #python #asyncio #rate_limiting #etl #async_pattern

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

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

    habr.com/ru/articles/983024/

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

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

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

    habr.com/ru/articles/983024/

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

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

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

    habr.com/ru/articles/983024/

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

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

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

    habr.com/ru/articles/983024/

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

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

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

    habr.com/ru/companies/otus/art

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

  28. Быстро — не всегда хорошо: рейтлимиты в мультикластерном окружении

    Всем привет! Кажется, настало время поговорить о том, как внедрялись ограничители частоты запросов на бэкенд в Wildberries. В статье — о том, с какими трудностями мы столкнулись на этом благородном пути и как прошли через четыре схемы реализации — от простейшей in-memory до собственных gRPC-сервисов. Не обойдём вниманием и парочку лайфхаков ;) Например, с помощью рейтлимитов мы неожиданно решили проблему плавного отключения старых версий API. Меня зовут Дмитрий Виноградов , и я лид команды публичного API Wildberries. До этого почти 18 лет занимался промышленной автоматизацией в Schneider Electric — от программирования контроллеров и embedded-устройств до собственных SCADA-систем. Хочешь не хочешь, а научишься делать красивые интерфейсы :)

    habr.com/ru/companies/wildberr

    #redis #go #rate_limiting #api #распределенные_системы #grpc

  29. Почему простой парсер не всегда решает задачу: мой опыт интеграции спортивных API

    В рамках собственной системы спортивной аналитики я хотел получить real-time доступ к данным о движении коэффициентов — в частности, с платформы pickingodds.com. У сервиса интересная фича — визуализация графика изменения линии по каждому событию. Это потенциально полезный источник вторичных сигналов (например, для обнаружения аномалий, связанных с резкой коррекцией маркет-мейкеров). Изначальный план был прост: интегрироваться по REST API, выкачивать данные раз в несколько минут, писать в TSDB, использовать далее для анализа и фичей в ML-пайплайнах. На практике же всё быстро ушло в зону нетривиальной оптимизации.

    habr.com/ru/articles/930360/

    #pickingodds #коэффициенты_ставок #асинхронный_парсинг #rate_limiting #aiohttp #Redis #Kafka #TimescaleDB #LightGBM #ML_фильтрация_событий

  30. Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

    Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

    habr.com/ru/companies/ddosguar

    #ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

  31. Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

    Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

    habr.com/ru/companies/ddosguar

    #ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

  32. Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

    Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

    habr.com/ru/companies/ddosguar

    #ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

  33. Загадка от Жака Фреско: как построить свой Rate Limiter и не утонуть в море компромиссов

    Построить Rate Limiter — легко. Сделать его быстрым, отказоустойчивым и работающим в нескольких дата-центрах — сложнее. Делюсь опытом реализации нашего облачного Rate Limiter в DDoS-Guard: принцип работы, анализ правил и реальные примеры из практики.

    habr.com/ru/companies/ddosguar

    #ratelimit #rate_limiting #ratelimiter #rate_limiter #ddosguard #оптимизация_запросов #429_request #облачные_решения #redis #consul

  34. Как понять, выдержит ли ваш сервис нагрузку: метрики, которые должен знать каждый инженер

    "А сколько пользователей выдержит наш сервис?" Вопрос звучит просто, но каждый раз ставит в тупик. Его задают на демо, на встречах с заказчиками, менеджеры, иногда даже сами разработчики. Когда-то, ещё в школьные годы, я читала журнал "Хакер" и мечтала, как было бы здорово "ломать серверы" и находить их слабые места. Теперь я занимаюсь этим вполне законно - через нагрузочное тестирование. И, честно говоря, это одно из самых приятных занятий в моей работе. Видеть, как система реагирует на рост нагрузки, оптимизировать запросы, отслеживать поведение метрик в реальном времени - это настоящее инженерное удовольствие. Ведь за каждой цифрой стоят реальные пользователи, для которых важно, чтобы всё работало быстро и стабильно, даже в пиковые моменты. Тем не менее, многие команды избегают нагрузки. "Мы уже проверяли это в начале проекта - зачем снова?" "Сложно, долго, не для нас." "Сделайте отчёт, главное чтобы красиво смотрелось." А иногда - просто страшно увидеть, как система покажет себя в реальных условиях. На самом деле всё гораздо проще. Главное, понимать ключевые метрики и уметь смотреть на них не как на сухие цифры, а как на отражение реального опыта ваших пользователей.

    habr.com/ru/articles/909002/

    #нагрузочное_тестирование #нагрузочные_тесты #метрики #перфоманс #response_time #rate_limiting

  35. [Перевод] Сравнение алгоритмов ограничения частоты запросов

    ▍ Зачем ограничивать частоту? Представьте чат в Twitch со множеством активных пользователей и одним спамером. Без ограничения частоты сообщений единственный спамер может запросто заполнить всю беседу сообщениями. При ограничении частоты у каждого пользователя появляется равная возможность участия. Видео Ограничитель частоты позволяет управлять частотой обрабатываемого вашим сервисом трафика, блокируя запросы, превосходящие заданное пороговое значение за период времени. И это полезно не только для борьбы со спамом в чатах. Например, ограничение частоты отправки формы логина позволяет защититься от брутфорс-атак, оставляя при этом пользователю право на ошибку. Конечные точки API тоже часто ограничивают по частоте запросов, чтобы их ресурсы не монополизировал единственный пользователь. Представьте, что вам нужно, чтобы пользователи могли обращаться к затратной конечной точке не чаще ста раз в минуту. Это можно отслеживать при помощи счётчика, обнуляющегося каждую минуту. Все запросы после сотого в пределах этой минуты будут блокироваться. Это один из простейших алгоритмов ограничения частоты, называющийся fixed window limiter (ограничитель с фиксированным окном) . Это распространённый способ управления трафиком к сервису. Но не всегда всё так просто. Когда начинается и заканчивается каждое одноминутное окно? Если я запущу поток запросов ближе к концу окна, смогу ли превысить лимит? Ёмкость окна восстанавливается по одному запросу за раз, или сразу на всё количество? В этом посте мы рассмотрим три самых популярных алгоритма, чтобы ответить на каждый из этих вопросов.

    habr.com/ru/companies/ruvds/ar

    #ruvds_переводы #ограничение_доступа #ограничение_трафика #запросы #rate_limiter #rate_limiting

  36. [Перевод] Сравнение алгоритмов ограничения частоты запросов

    ▍ Зачем ограничивать частоту? Представьте чат в Twitch со множеством активных пользователей и одним спамером. Без ограничения частоты сообщений единственный спамер может запросто заполнить всю беседу сообщениями. При ограничении частоты у каждого пользователя появляется равная возможность участия. Видео Ограничитель частоты позволяет управлять частотой обрабатываемого вашим сервисом трафика, блокируя запросы, превосходящие заданное пороговое значение за период времени. И это полезно не только для борьбы со спамом в чатах. Например, ограничение частоты отправки формы логина позволяет защититься от брутфорс-атак, оставляя при этом пользователю право на ошибку. Конечные точки API тоже часто ограничивают по частоте запросов, чтобы их ресурсы не монополизировал единственный пользователь. Представьте, что вам нужно, чтобы пользователи могли обращаться к затратной конечной точке не чаще ста раз в минуту. Это можно отслеживать при помощи счётчика, обнуляющегося каждую минуту. Все запросы после сотого в пределах этой минуты будут блокироваться. Это один из простейших алгоритмов ограничения частоты, называющийся fixed window limiter (ограничитель с фиксированным окном) . Это распространённый способ управления трафиком к сервису. Но не всегда всё так просто. Когда начинается и заканчивается каждое одноминутное окно? Если я запущу поток запросов ближе к концу окна, смогу ли превысить лимит? Ёмкость окна восстанавливается по одному запросу за раз, или сразу на всё количество? В этом посте мы рассмотрим три самых популярных алгоритма, чтобы ответить на каждый из этих вопросов.

    habr.com/ru/companies/ruvds/ar

    #ruvds_переводы #ограничение_доступа #ограничение_трафика #запросы #rate_limiter #rate_limiting

  37. [Перевод] Сравнение алгоритмов ограничения частоты запросов

    ▍ Зачем ограничивать частоту? Представьте чат в Twitch со множеством активных пользователей и одним спамером. Без ограничения частоты сообщений единственный спамер может запросто заполнить всю беседу сообщениями. При ограничении частоты у каждого пользователя появляется равная возможность участия. Видео Ограничитель частоты позволяет управлять частотой обрабатываемого вашим сервисом трафика, блокируя запросы, превосходящие заданное пороговое значение за период времени. И это полезно не только для борьбы со спамом в чатах. Например, ограничение частоты отправки формы логина позволяет защититься от брутфорс-атак, оставляя при этом пользователю право на ошибку. Конечные точки API тоже часто ограничивают по частоте запросов, чтобы их ресурсы не монополизировал единственный пользователь. Представьте, что вам нужно, чтобы пользователи могли обращаться к затратной конечной точке не чаще ста раз в минуту. Это можно отслеживать при помощи счётчика, обнуляющегося каждую минуту. Все запросы после сотого в пределах этой минуты будут блокироваться. Это один из простейших алгоритмов ограничения частоты, называющийся fixed window limiter (ограничитель с фиксированным окном) . Это распространённый способ управления трафиком к сервису. Но не всегда всё так просто. Когда начинается и заканчивается каждое одноминутное окно? Если я запущу поток запросов ближе к концу окна, смогу ли превысить лимит? Ёмкость окна восстанавливается по одному запросу за раз, или сразу на всё количество? В этом посте мы рассмотрим три самых популярных алгоритма, чтобы ответить на каждый из этих вопросов.

    habr.com/ru/companies/ruvds/ar

    #ruvds_переводы #ограничение_доступа #ограничение_трафика #запросы #rate_limiter #rate_limiting

  38. Как потреблять API с ограничением по RPS в .NET приложениях

    Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду . Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте . Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests .

    habr.com/ru/companies/ruvds/ar

    #ruvds_статьи #csharp #dotnet #rate_limiter #rps #ratelimit #rate_limiting #throttling #api

  39. Как потреблять API с ограничением по RPS в .NET приложениях

    Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду . Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте . Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests .

    habr.com/ru/companies/ruvds/ar

    #ruvds_статьи #csharp #dotnet #rate_limiter #rps #ratelimit #rate_limiting #throttling #api

  40. Как потреблять API с ограничением по RPS в .NET приложениях

    Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду . Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте . Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests .

    habr.com/ru/companies/ruvds/ar

    #ruvds_статьи #csharp #dotnet #rate_limiter #rps #ratelimit #rate_limiting #throttling #api

  41. Как потреблять API с ограничением по RPS в .NET приложениях

    Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду . Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте . Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests .

    habr.com/ru/companies/ruvds/ar

    #ruvds_статьи #csharp #dotnet #rate_limiter #rps #ratelimit #rate_limiting #throttling #api