Comments 13
Спасибо, очень интересно
Спасибо... В Сети множество статей как создать бота начального уровня, но мало информации о более продвинутых ботах. Даже тему "разворачивание ботов на хостинге" найти трудно. Вы же даете еще более продвинутый уровень куда двигаться дальше.
Из "минусов" статьи отмечу, что это скорее чек-лист, чем how-to. Хотя как понимаю, что это не баг, а фича, которая планировалась изначально.
Познаю питон через написание бота и тут оч много интересного) Благодарю!
А как работает масштабирование? scale=3 создаст одинаковые контейнеры 2 из которых будут ругаться, что один инстанс бота уже запущен.
В статье есть про балансировку нагрузки, это именно про это. По факту, с точки зрения телеграмм запущен один бот, который ссылается на балансировщик, который в свою очередь распределяет нагрузку между несколькими инстансами вашего бота. Если не прав, поправьте.
Телеграм ругается только если у вас несколько копий делают polling. В случае вебхуков у вас идёт запрос на один урл, а дальше типичное масштабирование веб приложения
Через вэбхуки не должно ругаться
Спасибо за хорошую статью. У меня телеграм бот для chat gpt практически один в один на подобной архитектуре написан. Правда я вместо пулинга использую Web хуки. И такого мощного мониторинга и масштабирования нет. Как раз работаю над этим. Зато есть обновление через github action - > docker hub при мерже в мастер ветку и куча команд для ручного мониторинга / перезапуска во время работы.
А как решается проблема гонки и сохранения состояния при множестве реплик?
Через БД/кэш.
Менеджером очередей. Вообще статья выглядит как сборник заметок. Я бы сказал, что даже не связанных между собой... я уж молчу, что, как правильно заметили, а в "статье" ни слова, что такую архитектуру можно только с вебхуками реализовать. Из этого был вскользь упомянут nginx, но примеры все про polling...
По-моему, тут несколько раз сказано про маштабируемость через разбиение на компоненты. В разных частях статьи, несколько разными словами.
А как можно симулировать нагрузку тысяч пользователей, чтобы протестировать бота, без подключения реальных пользователей?
Архитектура высоконагруженных телеграм-ботов на Python