Отказоустойчивость бота под нагрузку - вебхук, очереди, мониторинг

Андрей globall.dev · Москва · Опыт 7 лет · ИП
Рейтинг
1 720
 
Отзывы
-
нет отзывов
На сайте
7 лет
с 20.04.2019
10 000 ₽
сделаю за 6 дней
10 просмотров

Довожу бота или сервис до состояния, когда он держит рекламу и рост базы без задержек и потерянных сообщений.

Что делаю:
Перевожу с long polling на вебхук - обновления приходят сразу и не копятся в очереди
Ставлю очередь задач и воркеры, тяжёлые операции уходят в фон
Лимитер под ограничения Telegram - при ошибке 429 сообщение уходит повтором, рассылка не обрывается на середине
Рассылка и живые диалоги идут разными воркерами и не мешают друг другу
Кэш на частые запросы и пул соединений к базе
Автоперезапуск и health-check, так-же состояние диалога переживает рестарт
Мониторинг с уведомлением в Telegram, если бот замолчал, и ежедневный бэкап
Нагрузочный прогон до и после - время ответа и сколько сообщений в минуту держит сервер

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

Стек - Python и aiogram, Redis или RabbitMQ под очередь. Работаю с уже написанным ботом, логику не трогаю. Цифры даю по замеру на Вашем железе, без обещаний вроде «выдержит миллион».

10.000 - вебхук, очередь с воркерами, лимитер, мониторинг и нагрузочный прогон с отчётом, срок 6 дней.
Напишите, на чём написан бот и в какой момент он перестаёт справляться - посчитаю под Ваш объём.

Отказоустойчивость бота под нагрузку - вебхук, очереди, мониторинг
Готовы заказать «Отказоустойчивость бота под нагрузку - вебхук, очереди, мониторинг»?