8.2. 기본 캐싱
캐시되지 않은 요청의 경우 이벤트입니다.
- APIcast는 일치하는 매핑 규칙에서 사용량 지표를 추출합니다.
- APIcast는 지표와 애플리케이션 자격 증명을 3scale 백엔드 서버로 전송합니다.
3scale 백엔드 서버는 다음을 수행합니다.
- 애플리케이션 키를 확인하고 보고된 지표 사용량이 정의된 제한 내에 있는지 확인합니다.
- 보고된 지표의 사용을 늘리려면 백그라운드 작업을 대기열에 지정합니다.
- 요청이 승인되어야 하는지 여부에 APIcast에 응답합니다.
- 요청이 승인되면 업스트림으로 이동합니다.
이 경우 3scale 백엔드 서버가 응답할 때까지 요청이 업스트림에 도착하지 않습니다.
반면 기본적으로 활성화되는 캐싱 메커니즘은 다음과 같습니다.
- APIcast는 인증 받은 경우 3scale 백엔드 서버에 대한 권한 부여 호출 결과를 캐시에 저장합니다.
- 동일한 자격 증명 및 지표가 있는 다음 요청은 3scale 백엔드 서버로 이동하는 대신 캐시된 권한 부여를 사용합니다.
- 요청이 인증되지 않았거나 APIcast가 인증서를 처음 수신하는 경우 APIcast는 위에서 설명한 대로 3scale 백엔드 서버를 동기적으로 호출합니다.
인증이 캐시되면 APIcast는 먼저 업스트림을 호출한 다음 사후 작업 이라고 하는 단계에서 3scale 백엔드 서버를 호출하고 캐시에 권한을 저장하여 다음 요청을 준비합니다. 3scale 백엔드 서버에 대한 호출은 요청 시간에 발생하지 않기 때문에 대기 시간을 유발하지 않습니다. 그러나 동일한 연결에 전송된 요청은 사후 작업 단계가 완료될 때까지 기다려야 합니다.
클라이언트가 keep-alive 를 사용하고 1초마다 요청을 보내는 시나리오를 생각해 보십시오. 업스트림 응답 시간이 100ms이고 3scale 백엔드 서버의 대기 시간이 500ms인 경우 클라이언트는 100ms마다 응답을 받습니다. 업스트림 응답과 보고 총 600ms가 소요됩니다. 다음 요청이 제공되기 전에 400ms가 추가로 제공됩니다.
아래 다이어그램에서는 설명된 기본 캐싱 동작을 보여줍니다. 캐싱 메커니즘의 동작은 캐싱 정책을 사용하여 변경할 수 있습니다.