高负载系统Telegram Bot消息发送限制技术问询
高负载场景下Telegram Bot部署实践与限制解析
一、高负载部署经验
我们在多个高负载通知系统中落地过Telegram Bot,主要用于服务异常告警、用户交易通知等场景,峰值时单Bot日均需处理百万级消息发送需求。实际部署核心是严格遵守速率限制,同时通过多Bot分摊负载、动态调整发送速率来规避风险。
二、实际遇到的限制
- 官方明确速率限制:单条个性化消息(给单个用户发不同内容)每秒最多1条;批量相同内容通知(给不同用户发同一条消息)每秒最多30条。超出后会收到429限流错误,多次违规会导致Bot被临时限制API访问,极端情况会被永久封禁。
- 隐性反垃圾限制:即使严格按速率发送,短时间内给数千甚至上万用户推送消息,可能触发Telegram的反垃圾机制,导致部分消息延迟10-30分钟送达,甚至直接被拦截(用户收不到通知)。另外,同一公网IP下部署多个高负载Bot,容易被连带限制。
- 内容触发限制:如果通知内容模板重复度极高,或包含敏感关键词(比如诱导点击、违规营销内容),即使速率合规,也可能被Telegram判定为垃圾消息,导致Bot权限受限。
三、个人通知的发送速率
个人通知指给单个用户发送专属内容(比如用户的个人告警、账户变动提醒),官方明确限制是每秒最多1条。另外要注意,即使是给同一个用户发送,短时间内发送过于频繁(比如每分钟超过20条),也可能触发Telegram的流量管控,导致消息延迟或被拦截。如果是给不同用户发送个性化内容,必须把整体速率控制在每秒1条以内,或者通过多个独立Bot分摊发送任务(每个Bot各自遵守每秒1条的限制)。
Telegram官方FAQ关于批量通知的翻译内容:
- 向多个用户发送相同内容时,建议使用
sendMessage接口配合批量请求,发送速率控制在每秒不超过30条。- 发送个性化内容给用户时,速率应控制在每秒不超过1条,避免触发限流。
- 若收到429错误响应,需按照响应中
retry_after字段指定的时间进行重试,不要强行继续发送,否则可能导致Bot被封禁。
内容的提问来源于stack exchange,提问作者Nik Again
相关产品推荐
相关产品推荐

