캐시 내부 구조

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

이 주제에서는 PopulateCache 정책, LookupCache 정책, InvalidateCache 정책, ResponseCache 정책과 같은 정책 아래의 캐시 작업에 대해 설명합니다.

캐시 정보

캐싱 정책이 실행되면 단기 L1 캐시가 생성됩니다. 캐시된 항목에 액세스하지 않으면 1초 후에 캐시가 만료될 때까지 환경에 배포된 모든 메시지 프로세서에서 사용할 수 있는 데이터베이스에 유지됩니다. 캐시 정책에서 직접 만료 시간을 구성합니다.

인메모리 및 영구 캐시 수준

다음 그림과 같이 공유 캐시와 환경 캐시는 둘 다 인메모리 수준과 영구 수준으로 구성된 2단계 시스템을 기반으로 빌드되었습니다. 정책은 결합된 프레임워크로 두 수준과 상호 작용합니다. Apigee는 이 수준 사이의 관계를 관리합니다.

캐싱 정책은 수준 2 영구 스토리지와 상호작용하는 수준 1 메시지 프로세서와 상호작용합니다.
  • 수준 1은 빠른 액세스를 위한 인메모리 캐시(L1)입니다. 각 메시지 처리(MP) 노드에는 요청에 가장 빠르게 응답할 수 있도록 자체 인메모리 캐시가 있습니다.
    • L1은 수명이 짧은(1초) 인메모리 캐시입니다.
    • 메모리 한도에 도달하면 Apigee는 메모리에서 캐시 항목을 삭제하여(L2 영구 캐시에 여전히 보관) 다른 프로세스에서 메모리를 계속 사용할 수 있도록 합니다.
    • L1에는 동일한 캐시 키로 동시 요청 조회를 빠르게 수행할 수 있도록 1초의 단기 캐시가 제공됩니다.
  • 수준 2는 인메모리 캐시 아래에 있는 영구 캐시(L2)입니다. 모든 메시지 처리 노드는 캐시 항목을 유지하기 위해 캐시 데이터 저장소(Cassandra)를 공유합니다.
    • 인메모리 한도에 도달하는 경우와 같이 L1 캐시에서 삭제된 후에도 캐시 항목이 유지됩니다.
    • 영구 캐시는 리전이 다른 경우에도 메시지 프로세서 간에 공유되어 있으므로 캐시된 데이터에 대한 요청을 수신하는 노드와 상관없이 캐시 항목을 사용할 수 있습니다.
    • 특정 크기의 항목만 캐시될 수 있으며 다른 캐시 한도가 적용됩니다. 캐시 한도 관리를 참조하세요.
    • L2의 캐시 콘텐츠는 AES-256 알고리즘으로 암호화됩니다. 데이터는 런타임에서 사용되기 전에 복호화되고 L2에 기록되기 전에 암호화됩니다. 따라서 암호화 프로세스는 사용자에게 보이지 않습니다.

정책에서 캐시를 사용하는 방법

다음은 Apigee에서 캐싱 정책이 작동하는 동안 캐시 항목을 처리하는 방법을 설명합니다.

  • 정책이 캐시에 새 항목을 작성하는 경우(PopulateCache 또는 ResponseCache 정책):
    1. Apigee는 요청을 처리한 메시지 프로세서에서만 메모리 내 L1 캐시에 항목을 작성합니다. 항목이 만료되기 전에 메시지 프로세서의 메모리 한도에 도달하면 Apigee는 L1 캐시에서 항목을 삭제합니다.
    2. Apigee도 항목을 L2 캐시에 작성합니다.
  • 정책이 캐시에서 읽는 경우(LookupCache 또는 ResponseCache 정책):
    1. 먼저 Apigee는 요청을 처리하는 메시지 프로세서의 인메모리 L1 캐시에서 항목을 찾습니다.
    2. 해당하는 인메모리 항목이 없으면 Apigee는 L2 영구 캐시에서 항목을 찾습니다.
    3. 항목이 영구 캐시에 없으면 다음 안내를 따르세요.
      • LookupCache 정책: 캐시에서 값이 검색되지 않습니다.
      • ResponseCache 정책: Apigee는 대상에서 클라이언트로 실제 응답을 반환하고 항목이 만료되거나 무효화될 때까지 캐시에 항목을 저장합니다.
  • 정책이 기존 캐시 항목을 업데이트 또는 무효화하는 경우(InvalidateCache 정책, PopulateCache 정책, 또는 ResponseCache 정책):
    1. 요청을 수신하는 메시지 프로세서는 1초의 인메모리 L1 캐시에서 항목을 삭제하고 L2 캐시에서도 항목을 삭제합니다.
    2. 업데이트 또는 무효화 후에도 다른 메시지 프로세서가 인메모리 L1 캐시를 계속 사용할 수 있습니다.
    3. L1은 1초 후에 만료되도록 구성되어 있으므로 L1에서 항목을 삭제하는 데 필요한 삭제/업데이트 이벤트가 없습니다.

캐시 한도 관리

구성을 통해 캐시의 일부 측면을 관리할 수 있습니다. 인메모리 캐시에 사용 가능한 전체 공간은 시스템 리소스에 의해 제한되며 구성할 수 없습니다. 캐시에는 다음 제약조건이 적용됩니다.

  • 캐시 한도: 이름 및 값 크기, 총 캐시 수, 캐시의 항목 수, 만료 등 다양한 캐시 한도가 적용됩니다.
  • 인메모리 (L1) 캐시. 캐시의 메모리 한도는 구성할 수 없습니다. 한도는 여러 고객의 캐시를 호스팅하는 각 메시지 프로세서에 대해 Apigee가 설정합니다.

    모든 고객 배포에 대한 인메모리 캐시가 여러 공유 메시지 프로세서에 걸쳐 호스팅되는 호스팅 클라우드 환경에서 각 프로세서는 캐싱이 애플리케이션의 모든 메모리를 사용하지 않도록 Apigee에서 구성 가능한 메모리 백분율 임곗값을 가집니다. 지정된 메시지 프로세서에 대한 임곗값을 초과하면 가장 최근 사용 시점을 기준으로 캐시 항목이 메모리에서 삭제됩니다. 메모리에서 삭제된 항목은 만료되거나 무효화될 때까지 L2 캐시에 남아 있습니다.

  • 영구 (L2) 캐시. 인메모리 캐시에서 삭제된 항목은 구성 가능한 TTL 설정에 따라 영구 캐시에 유지됩니다.

구성 가능한 최적화

다음 표에는 캐시 성능을 최적화하는 데 사용할 수 있는 설정이 나열되어 있습니다.

설정 설명 참고
만료일 캐시 항목의 TTL(수명)을 지정합니다. 없음