메시지 프로세서에서 L1 캐시 만료 설정

Apigee Edge는 요청 간 데이터 지속성을 위해 캐싱을 제공합니다. API 데이터는 수신되면 캐시에 잠시 저장된 후 삭제됩니다. 데이터가 삭제되기 전에 보관되는 최대 시간을 캐시의 만료 또는 TTL (수명)이라고 합니다. 각 캐시에 기본 TTL이 있지만 경우에 따라 API 성능을 개선하기 위해 TTL 값을 변경해야 할 수 있습니다.

캐시 유형

API 데이터는 두 가지 유형의 캐시에 저장됩니다.

  • 수준 1 (L1): 인메모리 캐시로 액세스 속도는 빠르지만 사용 가능한 스토리지 용량이 적습니다.
  • 수준 2 (L2): Cassandra 데이터 저장소의 영구 캐시로, 액세스 속도가 느리지만 사용 가능한 스토리지 용량이 더 많습니다.

L1 캐시의 데이터 항목이 L1 TTL에 도달하면 삭제됩니다. 그러나 항목의 사본은 L2 캐시 (L1 캐시보다 TTL이 긴 경우)에 보관되며 다른 메시지 프로세서가 액세스할 수 있습니다. 캐시에 관한 자세한 내용은 인메모리 및 영구 캐시 수준을 참고하세요.

최대 L1 TTL

프라이빗 클라우드용 Edge에서는 최대 L1 TTL 속성 (conf_cache_max.l1.ttl.in.seconds)을 사용하여 각 메시지 프로세서에 최대 L1 캐시 TTL을 설정할 수 있습니다. L1 캐시의 항목은 최대 L1 TTL 값에 도달하면 만료되고 삭제됩니다.

참고:

  • 기본적으로 최대 L1 TTL은 사용 중지되며 (값 -1) L1 캐시에 있는 항목의 TTL은 PopulateCache 정책의 만료 설정 (L1 및 L2 캐시 모두)에 따라 결정됩니다.
  • 최대 L1 TTL은 값이 전체 캐시 만료보다 작은 경우에만 효과가 있습니다.

최대 L1 TTL 설정

다음과 같이 메시지 프로세서에 최대 L1 TTL을 설정할 수 있습니다.

  1. 편집기에서 구성 파일 /opt/apigee/customer/application/message-processor.properties을 엽니다. 파일이 없으면 새로 만듭니다.
  2. 최대 L1 TTL 속성을 원하는 값(
    conf_cache_max.l1.ttl.in.seconds = 180
    )으로 설정합니다.

    180초 값을 사용하는 것이 좋습니다.

  3. 속성 파일을 'apigee' 사용자가 소유해야 합니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. 메시지 프로세서를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

최대 L1 TTL 설정 가이드라인

최대 L1 TTL을 설정할 때 다음 가이드라인에 유의하세요.

  • RPC 누락: 특히 여러 데이터 센터에서 메시지 프로세서 (MP) 간에 리모트 프로시져 콜 (RPC) 누락이 발생한 경우 L1 캐시에 오래된 항목이 있어 L1 캐시에서 삭제될 때까지 비활성 상태로 유지될 수 있습니다. 최대 L1 TTL을 더 낮은 값으로 설정하면 오래된 항목을 더 빨리 삭제하고 L2 캐시의 새 값으로 대체합니다.
    해결 방법: conf_cache_max.l1.ttl.in.seconds를 줄입니다.
  • Casandra의 과도한 로드: 최대 L1 TTL 값을 설정하면 L1 캐시 항목이 더 자주 만료되어 L1 캐시 부적중 및 L2 캐시 적중이 증가합니다. L2 캐시가 더 자주 적중되기 때문에 Cassandra로 인해 부하가 증가합니다.
    해결 방법: conf_cache_max.l1.ttl.in.seconds 늘리기

일반적으로 Cassandra의 잠재적 부하와 MP 간 RPC 누락 빈도의 균형을 유지하는 값으로 최대 L1 TTL을 조정합니다.

처리를 원활하게 실행하려면 conf_cache_max.l1.ttl.in.seconds 값을 180초 (3분) 이상으로 설정하는 것이 좋습니다.