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을 설정할 수 있습니다.
- 편집기에서
구성 파일
/opt/apigee/customer/application/message-processor.properties
을 엽니다. 파일이 없으면 새로 만듭니다. - 최대 L1 TTL 속성을 원하는 값(
conf_cache_max.l1.ttl.in.seconds = 180
)으로 설정합니다.180
초 값을 사용하는 것이 좋습니다. - 속성 파일을 'apigee' 사용자가 소유해야 합니다.
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 메시지 프로세서를 다시 시작합니다.
/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분) 이상으로 설정하는 것이 좋습니다.