역할 내 캐시 클라이언트 구성 설정(Web.config)
중요
모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.
이 항목에서는 .NET Framework web.config 또는 app.config 구성 파일에서 In-Role Cache를 지원하기 위한 요구 사항에 대해 설명합니다. 또한 캐시 클라이언트에 대한 사용 가능한 구성 옵션도 설명합니다. 이 항목에 설명된 설정은 캐시 클라이언트에서만 필요합니다. In-Role Cache를 호스트하는 역할에는 필요하지 않습니다.
팁
In-Role Cache에 NuGet 패키지를 사용하면 패키지가 구성 파일을 자동으로 수정합니다. 그러나 이 항목을 사용하여 NutGet을 사용하지 않고 In-Role Cache 클라이언트를 구성할 수 있습니다. 또한 이 정보를 사용하여 NuGet에서 삽입하는 캐시 클라이언트 설정을 추가로 사용자 지정할 수 있습니다.
이 항목에서 다루는 섹션은 다음과 같습니다.
<configSections>
<dataCacheClients>
<dataCacheClient>
<Autodiscover>
<localCache>
<clientNotification>
<serializationProperties>
<cacheDiagnostics>
- <crashDump>
캐시 클라이언트 구성 예제
다음 예제에서는 In-Role Cache와 관련된 web.config 또는 app.config 파일의 섹션을 보여줍니다. 이 예제에서는 default
캐시 클라이언트가 CacheWorkerRole1
역할에서 호스팅하는 캐시에 액세스하며, 로컬 캐시가 사용됩니다.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
<section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
</configSections>
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
</dataCacheClients>
<cacheDiagnostics>
<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
</cacheDiagnostics>
</configuration>
configSections
다음 두 개의 명명된 섹션 요소를 configSections 요소의 섹션 목록에 추가해야 합니다.
Name | Description |
---|---|
dataCacheClients |
구성 파일의 dataCacheClients 요소를 정의합니다. 이 섹션에서는 모든 캐시 클라이언트 구성에 대한 설정을 지정합니다. |
cacheDiagnostics |
구성 파일의 cacheDiagnostics 요소를 정의합니다. |
다음 예제에서는 이러한 섹션을 정의하는 방법을 보여 줍니다.
<section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
<section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
dataCacheClients
각 dataCacheClients 요소에는 하나 이상의 명명된 dataCacheClient 요소가 포함됩니다. dataCacheClients 요소에는 특성이 없습니다. 여러 캐시 클라이언트 구성 섹션을 지정할 수 있으므로 응용 프로그램에서 여러 종류의 캐시된 데이터와 함께 다양한 설정을 사용할 수 있습니다.
dataCacheClient
각 dataCacheClients 요소에는 하나 이상의 명명된 dataCacheClient 요소가 포함됩니다. 애플리케이션 코드는 연결된 dataCacheClient 섹션의 이름을 참조하여 캐시 클라이언트에 대한 설정을 로드합니다.
dataCacheClients 요소에는 특성이 없습니다. 그러나 자식 dataCacheClient 요소에는 몇 가지 사용 가능한 특성이 있습니다. 다음 표에서는 이러한 특성에 대해 설명합니다.
attribute | 설명 |
---|---|
이름 |
캐시 클라이언트 구성의 이름입니다. |
isCompressionEnabled |
압축을 사용하거나 사용하지 않도록 설정합니다. 가능한 값은 |
useConnectionPool |
연결 풀을 사용하거나 사용하지 않도록 설정합니다. 가능한 값은 |
maxConnectionsToServer |
useConnectionPool이 설정된 |
다음 섹션에서는 각 dataCacheClient 요소 내에서 사용 가능한 자식 요소에 대해 설명합니다.
autoDiscover
autoDiscover 요소는 대상 캐시 클러스터에 자동으로 연결하여 캐시 클라이언트를 지원합니다. 이 캐시 클러스터는 같은 클라우드 서비스 배포 내의 역할에 의해 호스팅되어야 합니다.
다음 표에서는 autoDiscover 요소에 사용할 수 있는 특성에 대해 설명합니다.
attribute | 설명 |
---|---|
Isenabled |
|
identifier |
In-Role Cache를 호스트하는 동일한 클라우드 서비스 배포에서 역할의 이름입니다. |
<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
localCache
localCache 요소는 로컬 캐시의 사용을 제어합니다. 기본적으로 로컬 캐시는 사용되지 않습니다. 사용하도록 설정하면 캐시 클라이언트에서 검색된 항목이 클라이언트 컴퓨터의 메모리에 로컬로 저장됩니다. 이 경우 이후의 get 요청 성능이 향상되지만 로컬로 캐시된 버전과 캐시 클라이언트에 있는 실제 항목 간에 데이터 불일치가 발생할 수 있습니다. 자세한 내용은 Azure In-Role Cache의 로컬 캐시를 참조하세요.
다음 표에서는 localCache 요소에 사용할 수 있는 특성에 대해 설명합니다.
attribute | Description |
---|---|
Isenabled |
로컬 캐시를 사용하거나 사용하지 않도록 설정하려면 |
동기화 |
로컬 캐시가 무효화되는 방법을 결정합니다. 가능한 값은 |
objectCount |
로컬 캐시에 저장할 최대 개체 수입니다. 기본값은 10000입니다. |
ttlValue |
개체가 로컬 캐시에 저장되는 시간(초)입니다. 기본값은 300초입니다. |
참고
알림은 Azure 역할에 호스트되는 캐시에서만 지원되는 In-Role 캐시 기능입니다. 이러한 캐시는 알림을 사용하도록 구성해야 합니다.
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
clientNotification
다음 표에서는 clientNotification 요소에 사용할 수 있는 특성에 대해 설명합니다. 이 요소는 캐시 클라이언트에 대한 알림 동작을 제어합니다.
attribute | Description |
---|---|
pollInterval |
폴링 시도 간격(초)입니다. 폴링은 캐시 클러스터에서 알림을 확인하는 데 사용됩니다. 기본값은 |
maxQueueLength |
폴링 시도 사이에 이 캐시 클라이언트에 대한 큐에 넣을 최대 알림 수입니다. 기본값은 알림 |
<clientNotification pollInterval="60" maxQueueLength="10000"/>
serializationProperties
다음 표에서는 serializationProperties 요소에 사용할 수 있는 특성에 대해 설명합니다. 이 요소에서는 캐시된 항목에 대한 직렬화 유형을 기본 제공 또는 사용자 지정 중에서 선택할 수 있습니다. 자세한 내용은 Azure In-Role Cache의 Serialization을 참조하세요.
attribute | 설명 |
---|---|
직렬 변환기 |
캐시된 항목의 직렬화 유형을 결정합니다. 가능한 값은 |
cacheDiagnostics
이 섹션에서는 In-Role Cache에 대한 진단 설정 중 일부를 구성합니다. 진단에 대한 자세한 내용은 Azure In-Role 캐시 문제 해결 및 진단을 참조하세요.
다음 섹션에서는 각 cacheDiagnostics 요소 내에서 사용 가능한 자식 요소에 대해 설명합니다.
crashDump
crashDump 요소는 이 애플리케이션에 대해 수집된 크래시 덤프의 유형을 제어합니다. In-Role 캐시 크래시 덤프는 주로 캐시 클러스터 컴퓨터의 문제를 진단하도록 설계되었습니다. 따라서 클라이언트 구성 파일에서 크래시 덤프 생성을 해제해야 합니다. dumpLevel 특성을 Off
.로 설정하여 이 작업을 수행할 수 있습니다.
크래시 덤프가 사용하도록 설정되면 캐싱 로컬 저장소와 진단 저장소를 ServiceDefinition.csdef에서 조정하여 그 크기가 CacheSettings.xml에 구성되어 있는 크래시 저장소 할당량과 로그 저장소 할당량의 합계보다 항상 커야 합니다(기본값은 1000MB).
다음 표에서는 crashDump 요소에 사용할 수 있는 특성을 설명합니다.
attribute | Description |
---|---|
dumpLevel |
가능한 값은 |
dumpStorageQuotaInMB |
크래시 덤프에 할당할 최대 저장소 용량입니다. |
scheduledTransferPeriodInMinutes |
진단 저장소로 크래시 덤프가 전송되는 간격(분)입니다. |
<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />