我已经设置了这些限制。我正在自己的服务器上托管,有大量的用户(学校的教师和管理员)通过 API 调用(与一些其他专有软件集成的自定义前端)与之交互。
- name: DISCOURSE_ENABLE_HTTPS
value: "yes"
- name: DISCOURSE_PRECOMPILE_ASSETS
value: "yes"
- name: DISCOURSE_MAX_REQS_PER_IP_MODE
value: "none"
- name: DISCOURSE_MAX_USER_API_REQS_PER_MINUTE
value: "20000"
- name: DISCOURSE_MAX_USER_API_REQS_PER_DAY
value: "30000"
- name: DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE
value: "20000"
- name: "DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE"
value: "20000"
- name: "DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS"
value: "2000"
- name: "DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS"
value: "2000"
- name: "DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL"
value: "0"
- name: "DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE"
value: "20000"
- name: "DISCOURSE_MESSAGE_BUS_MAX_BACKLOG_SIZE"
value: "1000"
即使设置了这些值,用户在大约每分钟 60 次调用时仍然会达到某个限制。这似乎不是针对任何特定端点,而是整个 API 的某个全局速率限制。