Как стать автором
Обновить

Комментарии 5

К сожалению горизонтального скалирования для телеграм бота нормального нет. Если вы запустите два инстанса, то увидете спам из следующего в трейсах:
telegram.error.Conflict: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running. Это вызывается особенностями того как устроен механизм получения обновлений ботом через long polling.

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

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

А так да, грамотный скейлинг - это важно. Форточку сам открою :)

Вообще, тележные боты могут спокойно работать на вебхуках

И в базовом варианте скалировать можно даже просто приходящими http-запросами как любой другой веб-сервис

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

Да, я и не отрицаю, что это возможно сделать на хуках, осталось всё это упомянуть в статье :)

Статья же рассказывает про горизонтальное скалирование и даёт примеры, которые не скалируются горизонтально. Ну то есть если просто сделать как сказано в статье - получится бессмысленное и беспощадно неработающее решение. Зачем такую вводящую в заблуждение статью писать - для меня загадка.

Ну да, тут Вы правы, примеры в статье больше похожи на вредные советы.

Какую нейроночку использовали для написания статьи? )))

Судя по иллюстрации от далишки, и некоторым паттернам, таким как чрезмерное разжевывание, это был chatgpt 4. Я прав? )))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий