配额

配额描述“一个应用最多能装多少”:群成员、超级群成员、聊天室成员上限与消息频率。配额随 services 接口一起读写,按应用隔离;超出成员上限时服务端返回 1015 MEMBERSHIP_LIMIT。

概念​

配额键默认/范围生效点
maxGroupMembers按应用配置(默认值随服务端常量)加群/建群时校验,超出 1015
maxSuperGroupMembers同上超级群成员校验,超出 1015
maxChatroomMembers同上聊天室加入校验,超出 1015
messageRatePerMinute每分钟消息数当前未在服务端强制;仅作为配置值展示
  • 配额是应用级配置,不按用户/群单独设置;测试用户上限是另一套(见「测试用户」)。
  • messageRatePerMinute 与协议里的 sendRatePerMinute 都未强制;真正生效的接口级限流是「接口调频」。
  • 调整配额不会追溯清理已超限的数据;只影响后续写入。
未强制项如实标注

messageRatePerMinute 目前只保存不执行。需要限流请配置「接口调频」的 per-operation QPS,或在上层网关限流。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#services(tab #services:服务开通)。
  • 请求头 X-Admin-Secret 与服务端 IM_ADMIN_SECRET 一致(本地默认 dev-admin)。
  • 已在控制台选中应用;带 {appkey} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 读取现有配额

    GET services,查看 quotas 当前值。

  2. 设置新配额

    POST services 时带完整 quotas 对象;未传则保持服务端默认/原值。

  3. 验证边界

    构造超过上限的加群/加聊天室请求,应返回 1015。

  4. 容量规划

    按单群上限 × 群数估算内存与消息存储;配额不是订阅套餐,不产生费用。

参数表​

参数类型说明
quotas.maxGroupMembersuint32普通群成员上限
quotas.maxSuperGroupMembersuint32超级群成员上限
quotas.maxChatroomMembersuint32聊天室在线成员上限
quotas.messageRatePerMinuteuint32消息频率配置(当前未强制)

示例​

调整群与聊天室上限​

Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/services" \
  -H 'X-Admin-Secret: dev-admin'

# 注意:services 是整体覆盖,先取回现有映射再修改
curl -sS -X POST "http://127.0.0.1:8080/api/admin/apps/demo/services" \
  -H 'X-Admin-Secret: dev-admin' \
  -H 'content-type: application/json' \
  -d '{"services":{"private_chat":true,"group":true,"chatroom":true,"callbacks":true},"quotas":{"maxGroupMembers":2000,"maxSuperGroupMembers":100000,"maxChatroomMembers":5000,"messageRatePerMinute":120}}'

常见问题​

调低配额会踢人吗?​

不会。只影响后续加入;已超限的群/聊天室保持现状,直到成员自然减少。

消息频率为什么不生效?​

当前服务端没有按用户/分钟强制消息数;请使用接口调频或网关限流。

成员上限和超级群上限能一样吗?​

可以分别设置;超级群通常远大于普通群。

配额与计费有关吗?​

无关。自托管版没有按配额计费或升级套餐的流程。

相关链接​