2011-12-22 5 views
1

최근에 다 계층 아키텍처와 관련하여 "다중 계층 캐시"라는 문구가 나오지만 그러한 캐시가 무엇인지 (또는 사용 방법)에 대한 의미있는 설명이 없습니다.다중 계층 캐시 란 무엇입니까?

해당 구문에 대한 관련 온라인 검색은 실제로 아무 것도 발생시키지 않습니다. 내 해석은 일부 n 계층 웹 응용 프로그램의 모든 계층을 서비스하는 캐시입니다. 각 계층에 하나의 캐시 노드가있는 분산 캐시 일 수 있습니다.

지금까지이 용어를 접했습니까? 내가 맞습니까? 어때?

+0

상황에 따라 http://stackoverflow.com/questions/3699582/what-is-the-difference-between-l1-cache-and-l2-cache 또는 http : //stackoverflow.com/questions/337072/what-is-first-and-second-level-caching-in-hibernate. – ziesemer

+0

EhCache에서 사람들이 사용하는 용어입니다 (소스로 사용). 감사! – IAmYourFaja

답변

1

EhCache를 몇 주 동안 사용한 후에도 "multi-tier"이라는 캐시가 의미하는 바가 여전히 명확하지 않습니다. 나는 을 암시적인 의미로으로 해석한다. 누군가가 따라오고 다르게 알고 있다면, 언제든지 대답 해주십시오.

다중 계층 캐시는 n 계층의 아키텍처에서 1+ 계층에있는 복제 및/또는 분산 캐시로 나타납니다. 이를 통해 여러 계층의 구성 요소가 동일한 캐시에 액세스 할 수 있습니다. EhCache에서는 복제 된 또는 분산 된 캐시 아키텍처를 여러 계층의 동일한 캐시 서버를 참조하는 것과 함께 사용하면이 작업을 수행 할 수 있습니다.

0

나는 이것이 오래되었다는 것을 알고 있지만 여러 개의 다중 계층 캐시를 작성했거나 하나 이상의 반복을 작성한 이후로 여기 내 두 센트에 던져 넣을 것이라고 생각했습니다.

이것을 고려하십시오. 모든 응용 프로그램은 서로 다른 계층을 가지며 각 계층마다 다른 형식의 정보를 캐시 할 수 있습니다. 각 캐시 항목은 일반적으로 기간이 만료되었거나 종속성이 업데이트 된 두 가지 이유 중 하나로 인해 만료됩니다.

  1. 템플릿 (객체 정의)
  2. 개체 (완전한 개체 캐시)
  3. 블록 (부분 개체/블록 캐시)
:

이 설명은

, 우리는 세 개의 층을 가지고 있다고 가정 할 수 있습니다

각 계층은 그것의 부모에 의존하고, 우리는 어떤 형태의 의존성 할당을 사용하여 그것들을 정의 할 것입니다. 그래서 블록은 템플릿에 의존하는 객체에 의존합니다. Object가 변경되면 Block의 종속성이 제거되고 새로 고쳐집니다. 템플릿이 변경되면 객체 종속성이 제거되고 블록이 삭제되고 모든 객체가 새로 고쳐집니다.

몇 가지 이점이 있습니다. 긴 만료 시간은 큰 것이므로 부모가 업데이트 될 때마다 종속 리소스로 인해 다운 스트림 리소스가 업데이트되므로 캐시되지 않은 리소스가 오래 유지되지 않습니다. 전체 페이지 캐싱 (동적 컨텐트 캐싱을 피하기 위해 AJAX 또는 Edge Side Includes가 필요함)이 부족하기 때문에 블록 캐시가 큰 도움이됩니다. 블록은 최종 사용자 브라우저/인터페이스에 가장 가까운 요소가 될 것이고 사전 처리의 보트로드를 줄일 수 있기 때문입니다 사이클.

이와 같은 다중 계층 캐시의 복잡성은 일반적으로 순수 계층 적 데이터베이스 기반 외래 키 삭제에 의존 할 수 없다는 것입니다. 즉, 각 계층이 해당 부모와 관련하여 1 : 1이 아닌 경우 (즉, 블록 단일 템플릿을 사용하는 단일 객체에만 의존합니다). 종속 리소스의 삭제를 프로그래밍 방식으로 처리해야합니다.DB의 저장 프로 시저를 통해 또는 제거 된 규칙을 사용하여 동적으로 작업하려는 경우 응용 프로그램 계층에서이 작업을 수행 할 수 있습니다. 내가 추가해야, 이러한 계층 중 하나가 클러스터 수, 분산됩니다, 또는 그렇지 않으면 스케일 환경에서, 그래서이 모델은 작은 모두에서 작동합니다 사람이 :)


편집

하는 데 도움이

희망 대형 환경.