-
로컬 캐시(Local Cache)와 글로벌 캐시(Global Cache)는 캐시의 범위와 사용 방법자바웹프로그래밍 2024. 9. 30. 14:54728x90반응형
1. 로컬 캐시 (Local Cache)
로컬 캐시는 개별 애플리케이션 인스턴스(또는 서버)의 메모리에 저장되는 캐시입니다. 특정 서버 또는 애플리케이션 프로세스에만 유효하고, 다른 서버나 애플리케이션 인스턴스와 공유되지 않습니다. 주로 서버나 애플리케이션의 성능을 높이기 위해 자주 접근하는 데이터를 메모리에 저장하는 방식입니다.
특징:
- 빠른 접근 속도: 메모리 내에 캐시되어 있어 매우 빠른 접근이 가능하며, 네트워크 통신이 필요 없습니다.
- 서버별 독립성: 각 서버나 애플리케이션 인스턴스가 자신만의 캐시를 유지합니다. 서로 다른 서버 간에는 캐시가 공유되지 않기 때문에 다른 서버의 캐시 업데이트를 반영할 수 없습니다.
- 스케일 문제: 여러 대의 서버가 있는 경우, 각 서버가 다른 버전의 캐시를 가지고 있을 수 있습니다. 이로 인해 일관성 문제가 발생할 수 있습니다.
- 대표적인 구현: Ehcache, Guava Cache, 애플리케이션의 메모리 자체에서 사용되는 단순한 해시맵 등이 있습니다.
사용 사례:
- 싱글 서버 환경 또는 데이터 일관성이 크게 중요하지 않은 경우에 적합합니다.
- 읽기 작업이 많은 애플리케이션에서 데이터베이스에 대한 부담을 줄이고 응답 속도를 높이기 위해 자주 사용됩니다.
장점:
- 매우 빠른 응답 속도 (네트워크 트래픽이 없기 때문).
- 쉽게 구현 가능하며, 애플리케이션 성능을 즉각적으로 개선.
단점:
- 일관성 문제: 서버가 여러 대일 경우, 각각의 캐시가 서로 다른 데이터를 가질 수 있습니다.
- 서버가 재시작되면 캐시가 모두 소멸됩니다.
2. 글로벌 캐시 (Global Cache)
글로벌 캐시는 분산 시스템에서 모든 서버와 애플리케이션 인스턴스가 공유하는 캐시입니다. 중앙 집중식 캐시 서버나 클러스터링된 캐시 시스템을 사용해 네트워크를 통해 여러 서버가 동일한 캐시에 접근합니다. 이 방식은 여러 애플리케이션 인스턴스가 같은 캐시 데이터를 사용하기 때문에 데이터 일관성을 보장할 수 있습니다.
특징:
- 캐시 일관성 유지: 여러 서버에서 동일한 캐시 데이터를 접근하므로, 데이터 일관성을 유지할 수 있습니다.
- 확장성: 캐시 서버를 여러 대로 구성할 수 있으며, 캐시 용량이 더 필요한 경우 클러스터를 확장할 수 있습니다.
- 네트워크 지연: 로컬 캐시보다 응답 시간이 느릴 수 있습니다. 이는 캐시 서버에 네트워크를 통해 접근해야 하기 때문입니다.
- 대표적인 구현: Redis, Memcached, Hazelcast, Infinispan 등 분산 캐시 시스템이 글로벌 캐시로 많이 사용됩니다.
사용 사례:
- 분산 애플리케이션에서 여러 서버 간의 데이터 일관성이 중요한 경우.
- 대규모 시스템에서 여러 인스턴스가 동일한 데이터를 공유할 때 적합합니다.
- 세션 관리, 인증 정보 공유, 데이터베이스 조회 결과 캐싱 등에서 자주 사용됩니다.
장점:
- 일관성 보장: 여러 서버가 동일한 캐시 데이터를 공유하므로 데이터의 일관성을 유지할 수 있습니다.
- 확장성: 필요에 따라 캐시 서버를 추가하거나 용량을 확장할 수 있습니다.
단점:
- 네트워크 지연: 네트워크 통신이 필요하므로, 로컬 캐시보다 느릴 수 있습니다.
- 복잡성: 글로벌 캐시 시스템은 설정 및 관리가 복잡할 수 있으며, 운영 비용이 더 발생할 수 있습니다.
로컬 캐시와 글로벌 캐시의 차이점 요약
특징로컬 캐시글로벌 캐시
범위 개별 애플리케이션 인스턴스/서버 모든 서버와 애플리케이션 인스턴스가 공유 속도 매우 빠름 (메모리 내 저장) 네트워크 지연이 있어 로컬 캐시보다 느림 일관성 서버 간 일관성 보장 어려움 데이터 일관성 보장 확장성 서버를 추가하면 각 서버에 독립된 캐시 생성 서버 확장과 함께 중앙 집중식 캐시 확장 가능 복잡성 단순 (구현이 쉬움) 설정과 관리가 복잡할 수 있음 주요 사용 기술 Ehcache, Guava Cache, 단순 해시맵 Redis, Memcached, Hazelcast, Infinispan 캐시 전략 선택
- 로컬 캐시는 싱글 서버 환경이거나, 일관성이 중요하지 않고 속도가 최우선일 때 유리합니다.
- 글로벌 캐시는 분산 시스템에서 데이터 일관성이 중요하거나 여러 서버에서 같은 데이터를 공유해야 할 때 유리합니다.
728x90반응형'자바웹프로그래밍' 카테고리의 다른 글
CDN은 왜 사용할까? GSLB는 무엇일까? (1) 2024.10.04 Http1.1 vs http2.0 차이점 및 분석 (1) 2024.09.12 HttpServletReqeust에서 getInpustStream을 한번만 사용가능한 이 (0) 2024.09.06 JSESSIONID의 역할 및 생성과정 및 JSESSIONID가 필요없는경우 (1) 2024.07.23