Microsoft ASP.NET 출력 캐시 지정된 기간 동안 ASP.NET 페이지 또는 사용자 컨트롤의 렌더링된 콘텐츠를 캐시하는 기능을 제공합니다. 이렇게 하면 ASP.NET 응용 프로그램이 페이지를 다시 렌더링하고 다시 실행하는 대신 캐시에서 모든 후속 요청을 처리할 수 있습니다.
당신은 <% @OutputCache %> ASP.NET 출력 캐시를 사용하는 페이지의 지시문.
1 2 |
<%@Page … %> <%@OutputCacheDuration="duration"VaryByParam="paramList"%> |
ASP.NET 출력 캐싱은 특히 페이지가 변경되는 것보다 더 자주 액세스되고 캐시에서 제공하는 경우에 매우 유용한 기능입니다. 이렇게 하면 페이지 재실행을 방지하고 특히 페이지에 많은 양의 데이터베이스 작업이 포함될 때 값비싼 데이터베이스 이동을 줄임으로써 응용 프로그램 성능이 향상됩니다. 또한 데이터베이스 작업과 관련된 수백만 개의 페이지와 요청이 있는 경우 데이터베이스가 일반적으로 확장성 병목이 되기 때문에 응용 프로그램 확장성이 향상됩니다.
Microsoft Azure 환경의 ASP.NET 출력 캐시 문제
Microsoft Azure에서 출력 캐시를 사용하면 기본적으로 페이지 출력이 Microsoft Azure 웹 역할 내에서 InProc로 저장됩니다. 이것의 첫 번째 문제는 웹 역할 인스턴스에서 사용할 수 있는 메모리로 제한되어 많은 양의 페이지 출력 데이터를 캐시할 때 메모리 부족 문제가 발생할 수 있다는 것입니다. 또 다른 문제는 애플리케이션이 부하 분산된 여러 Microsoft Azure 웹 역할 인스턴스에서 실행된다는 것입니다. 다음 요청은 이 인스턴스에서 ASP.NET 출력 캐시 데이터의 새 복사본도 만드는 다른 웹 역할 인스턴스로 이동할 수 있습니다. 각 웹 역할 인스턴스에서 페이지 출력의 이러한 중복 복사본은 많은 추가 메모리를 소비합니다.
Microsoft Azure 웹 역할 인스턴스는 유지 관리 및 패치 적용을 위해 매우 자주 재활용됩니다. 이 경우 모든 페이지 출력이 손실되고 페이지 출력 캐시를 다시 채우기 위해 모든 페이지를 다시 실행해야 합니다. 이는 Azure 애플리케이션의 성능에 부정적인 영향을 미칩니다.
Microsoft Azure에서 출력 캐싱 문제를 해결하는 방법은 무엇입니까?
Microsoft Azure에서 이러한 모든 문제를 해결할 수 있는 한 가지 방법은 out-of-process로 실행되고 모든 Microsoft Azure 웹 역할 인스턴스에 대한 공통 저장소인 분산 캐시를 사용하는 것입니다. ASP.NET 4.0에는 개발자가 원하는 모든 분산 캐시를 ASP.NET 출력 캐시 저장소로 사용하는 데 도움이 되는 확장성 지점이 도입되었습니다.
분산 캐시는 페이지 출력을 위해 모든 Microsoft Azure 웹 역할에서 공유되므로 개별 웹 역할 인스턴스 내에서 중복 복사본이 생성되지 않습니다. Microsoft Azure 웹 역할은 완전히 상태 비저장이 되므로 웹 역할이 재활용될 때 데이터가 손실되지 않습니다. 모든 캐시 서버의 메모리 리소스를 함께 풀링하여 분산 캐시에 방대한 양의 데이터를 캐시할 수 있습니다. 또한 분산 캐시는 각 Microsoft Azure 웹 역할 인스턴스에서 개별적으로 데이터베이스 호출과 관련된 페이지 실행을 수행할 필요가 없기 때문에 데이터베이스의 로드를 줄입니다.
NCache Azure의 경우 .NET용 메모리 내 분산 캐시 Microsoft Azure 클라우드에 배포된 애플리케이션. NCache for Azure는 ASP.NET 페이지 출력을 저장하고 위에서 언급한 모든 문제를 해결하는 데 사용할 수 있는 ASP.NET 출력 캐시 공급자를 구현했습니다. 또한 배포 NCache 등 Azure 캐싱 서비스 복제를 통해 데이터 안정성을 제공할 뿐만 아니라 애플리케이션 확장성을 향상시킵니다.
이용 방법 NCache Azure ASP.NET 출력 캐시 공급자용
당신이 사용할 수 NCache Microsoft Azure 애플리케이션에 대한 코드 변경 없이 다음과 같이 ASP.NET의 출력 캐싱을 위한 Azure용입니다.
1 단계 : 참조 추가 NCache Azure Output Cache 공급자 어셈블리용.
파일: web.config
1 2 3 4 5 6 |
<compilation debug="true " targetframework="4.0"> <assemblies> <add assembly="Alachisoft.NCache.OutputCache,Version=x.x.x.x,Culture=neutral"> </add></assemblies> </compilation> |
2 단계 : 회원가입 NCache Azure 출력 캐시 공급자의 경우구성> 섹션 및 캐시 설정을 제공합니다.
파일: web.config
1 2 3 4 5 6 7 8 |
<caching> <outputcache defaultprovider="NOutputCacheProvider"> <providers> <add name="NOutputCacheProvider" type="NCOutputCache.NOutputCacheProvider" exceptionsenabled="true" enablelogs="false" cachename="mypartitionofReplicaCache"> </add></providers> </outputcache> </caching> |
3 단계 : 캐시하려는 페이지에 ASP.NET 출력 캐시 지시문을 추가합니다.
1 |
<%@OutputCacheVaryByParam="ProductCategory"Duration="300"%> |
선적 서류 비치: ASP.NET 출력 캐싱 사용 NCache
NCache Azure ASP.NET 출력 캐시 기능용
NCache for Azure는 Microsoft Azure의 출력 캐싱을 캐싱하고 관리하기 위한 다양한 기능을 제공합니다. 다음은 그 목록입니다.
- 페이지 출력 기간 지정: NCache for Azure를 사용하면 ASP.NET 페이지 출력을 캐시할 기간을 지정할 수 있습니다.
- 페이지의 다른 버전 캐시: NCache for Azure를 사용하면 VaryByParam, VaryByCustom, VaryByControl과 같은 다양한 ASP.NET 출력 캐시 지시문에 따라 다양한 버전의 페이지를 캐시할 수 있습니다. 페이지 요청에 대해 다른 매개변수가 수신되면 페이지 출력의 다른 버전이 분산 캐시에 저장됩니다.
- 페이지의 다른 부분을 캐시합니다. 전체 페이지를 캐싱하는 대신 페이지의 일부만 지정할 수도 있습니다. 이것은 페이지의 정적 부분만 캐시하고 런타임에 렌더링되는 동적 부분은 남겨두는 상황을 위한 것입니다.
- ASP.NET 출력 캐시에 대한 사용자 지정 후크 구현: NCache Azure용을 사용하면 페이지 출력에 대한 사용자 지정 후크(인터페이스)를 구현하고 등록할 수 있습니다. 이는 다음과 같은 일부 확장 속성을 페이지 출력에 첨부하기 위한 것입니다. NCache Azure 데이터베이스 종속성, 태그, 그룹 등
결론
이미 보았듯이 분산 캐시를 사용하면 ASP.NET 페이지 출력을 캐시할 수 있으므로 부하가 분산된 여러 Azure 웹 역할과 관련된 애플리케이션 문제를 해결할 수 있습니다. NCache ASP.NET 애플리케이션 성능 확장성 및 안정성을 개선하는 데 도움이 되는 Azure ASP.NET 출력 캐시 공급자입니다.