안티패턴: 크기가 256KB를 초과하는 데이터를 캐시에 저장

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

Apigee Edge는 지속성과 빠른 검색을 위해 런타임에 캐시에 데이터를 저장하는 기능을 제공합니다.

  • 데이터는 처음에 L1 캐시라고 하는 메시지 프로세서의 인메모리 캐시에 저장됩니다.
  • L1 캐시는 JVM 메모리의 비율로 예약된 메모리 양에 따라 제한됩니다.
  • 캐시된 항목은 나중에 모든 메시지 프로세서에 액세스할 수 있는 L2 캐시에 유지됩니다. 자세한 내용은 아래 섹션에서 확인할 수 있습니다.
  • L2 캐시에는 캐시 항목 수에 대한 엄격한 제한은 없지만 캐시할 수 있는 최대 항목 크기는 256KB로 제한됩니다. 최적의 성능을 위해 캐시 크기는 256KB가 권장됩니다.

안티패턴

이 특정 안티패턴은 Apigee Edge 플랫폼 내에서 현재 캐시 크기 제한을 초과할 경우의 결과에 대해 설명합니다.

데이터가 256KB를 초과하면 다음과 같은 영향이 발생합니다.

  • L2 캐시에서 256KB를 초과하는 항목을 사용할 수 없으므로 각 메시지 프로세서에서 처음 실행되는 API 요청은 원본 소스(정책 또는 대상 서버)에서 독립적으로 데이터를 가져와야 합니다.
  • 대용량 데이터(256KB 초과)를 L1 캐시에 저장하면 플랫폼 리소스에 더 큰 부담이 가해지는 경향이 있습니다. 이렇게 하면 L1 캐시 메모리가 더 빠르게 채워지고 다른 데이터에 사용 가능한 공간이 줄어들게 됩니다. 따라서 원하는 만큼 적극적으로 데이터를 캐시할 수 없게 됩니다.
  • 항목 수 제한에 도달하면 메시지 프로세서의 캐시된 항목이 삭제됩니다. 이렇게 하면 데이터를 해당 메시지 프로세서의 원본 소스에서 다시 가져오게 됩니다.

흐름도 두 개.
  API 프록시와 메시지 프로세서 간의 흐름을 보여주는 크기<=256KB의 경우와 메시지 프로세서와 Persistent Storage L2 캐시 간의 흐름을 보여줍니다. 크기가 256KB보다 큰 경우 API 프록시와 메시지 프로세서 간의 흐름을 보여주고 메시지 프로세서와 L2 캐시에 저장되지 않은 데이터/응답 간의 흐름을 보여줍니다.

영향

  • 크기가 256KB를 초과하는 데이터는 L2/영구 캐시에 저장되지 않습니다.
  • 원본 소스(정책이나 대상 서버)에 대한 호출을 더 자주 하면 API 요청의 지연 시간이 늘어납니다.

권장사항

  • 최적의 성능을 위해 256KB 미만 크기의 데이터를 캐시에 저장하는 것이 좋습니다.
  • 256KB를 초과하는 데이터를 저장해야 하는 경우 다음을 고려합니다.
    • 대규모 데이터 저장에 적절한 데이터베이스 사용

      또는

    • 데이터 압축

추가 자료