API 속도 제한

여러분 안녕하세요,
이 포럼에서 API 속도 제한(rate limits)에 대해 설명하는 몇몇 (좀 오래된) 게시글을 발견했습니다(예: Available settings for global rate limits and throttling). 저희 사이트 커스터마이징 과정에서 사용자와 주제 관련 API 호출을 여러 번 수행하고 있어, 호출 횟수를 최소화하는 것이 중요하다고 생각하여 질문드립니다.

이 설정들은 여전히 관리자 패널을 통해 설정할 수 있나요? 지금까지 Discourse API 속도 제한과 관련된 항목을 찾지 못했습니다.

만약 설정이 불가능하다면, 요청 활동을 모니터링할 수 있는 방법이 있을까요?

미리 감사드립니다!

이 API 속도 제한 설정은 관리자 패널을 통해 구성되지 않습니다. 대신 Discourse 사이트가 호스팅된 서버의 app.yml 파일에 추가해야 합니다. 따라서 자체 호스팅(self-hosted)을 사용 중인 경우 변경 사항을 적용하려면 서버에 SSH로 접속해야 합니다.

@blake 답변해 주셔서 감사합니다! 저희 팀은 실제로 호스팅을 위해 Discourse에 의존할 예정이라, 자체 설정 파일이 전혀 없습니다. 이 방향으로 진행할 경우 API 한도를 확인하거나 조정할 수 있는 방법이 있을까요?

:+1:

엔터프라이즈 플랜을 사용 중이시라면, 해당 한도 중 일부를 조정해 드리고 API 사용에 대한 가이드를 제공하여 API 사용 부하를 줄일 수 있도록 도와드릴 수 있습니다.

API 호출을 수행하는 앱에서 429 오류를 처리하고, 수신되는 Retry-After 헤더를 확인하도록 권장합니다. 이를 통해 언제 다시 요청을 시작할 수 있는지 알 수 있습니다.

@blake 정보 주셔서 다시 한번 감사드립니다! 제 팀은 현재 Discourse에서 정의한 표준 레이트 리밋으로 충분할 것 같습니다. 이 레이트 리밋이 구체적으로 어떻게 설정되어 있는지 공유해 주실 수 있을까요? 지금까지 명확한 목록을 찾지 못했습니다.

네, 프로/비즈니스 플랜의 기본 한도는 여기에 나열되어 있습니다.

https://github.com/discourse/discourse/blob/main/config/discourse_defaults.conf#L224-L231

@blake 다시 한번 정보를 공유해 주셔서 감사합니다! 이 내용과 다소 관련이 있지만, 테마/컴포넌트 수준에서 직렬화기 커스터마이징을 추가할 일정이 있는지 알고 계신가요? 지난 1년간 이 포럼에서 해당 기능이 간간이 언급되어 왔지만, 아직 구현되지 않았다는 점도 알고 있습니다.

질문하는 이유는 현재 주제 목록에서 주제별로 사용자 데이터를 가져오고 있는데, 플랫폼의 사용자가 많아지면 이 비용이 크게 늘어날 수 있기 때문입니다. 사용자 모델의 특정 데이터를 특정 직렬화기에 추가하면 현재 수행하고 있는 API 호출 횟수를 줄이는 데 도움이 될 수 있을 것입니다.

제가 알고 있는 한, 이에 대한 일정은 없습니다.

다만, 이러한 맞춤형 데이터 요청에는 data-explorer 플러그인을 사용하는 것을 권장합니다. 직접 맞춤형 SQL 쿼리를 작성하고 저장하여 ID를 부여할 수 있습니다. 그런 다음 해당 저장된 쿼리에 대한 API 호출을 수행하면, 쿼리가 즉시 실행되어 필요한 JSON을 단일 요청으로 반환합니다.