다음을 통해 공유


Windows Server AppFabric 로컬 캐시 사용

Windows Server AppFabric에서는 프로그래밍 방식으로 또는 응용 프로그램 구성 파일을 사용하여 캐시 클라이언트를 구성하는 옵션을 제공합니다. 다음 절차에서는 프로그래밍 방식으로 캐시 클라이언트에서 로컬 캐시를 사용하도록 설정하는 방법에 대해 설명합니다. 응용 프로그램 구성 파일을 사용하여 이 작업을 수행하는 방법에 대한 자세한 내용은 Windows Server AppFabric 로컬 캐시 사용(XML)을 참조하십시오.

다음 단계에서는 프로그래밍 방식으로 캐시 클라이언트에 대해 로컬 캐시를 사용하도록 설정하는 데 필요한 프로세스에 대해 설명합니다.

  1. DataCacheLocalCacheProperties 클래스의 인스턴스를 만듭니다. 생성자의 매개 변수에 적절한 값을 전달하여 로컬 캐시를 구성합니다. 여기에는 objectCount, defaultTimeoutinvalidationPolicy가 포함됩니다.

  2. DataCacheFactory 개체의 생성자에 DataCacheLocalCacheProperties 개체를 전달합니다.

  3. DataCacheFactory 개체를 통해 GetCache 메서드를 호출하여 로컬 캐시를 사용하는 캐시 클라이언트를 만듭니다.

경고

이러한 절차에서는 개발 환경을 이미 준비했으며 AppFabric 캐싱 어셈블리에 대한 참조를 설정했다고 가정합니다. 자세한 내용은 캐시 클라이언트 개발 환경 준비(Windows Server AppFabric 캐싱)를 참조하십시오.

로컬 캐시를 사용할 수 있는 캐시 클라이언트를 만들려면 다음을 수행하십시오.

  1. DataCacheServerEndpoint 개체의 배열을 만들어 클라이언트의 캐시 호스트를 지정합니다.

  2. DataCacheLocalCacheProperties 클래스의 인스턴스를 만듭니다. 생성자의 매개 변수에 적절한 값을 전달하여 로컬 캐시를 구성합니다.

    1. objectCount 매개 변수를 사용하여 로컬 캐시의 최대 개체 수를 지정합니다.

    2. defaultTimeout 매개 변수를 사용하여 개체가 무효화되기까지 로컬 캐시에 유지될 시간을 결정하는 System.TimeSpan 개체를 지정합니다.

    3. invalidationPolicy 매개 변수를 사용하여 로컬에 캐시된 개체의 무효화 방법을 지정합니다. 시간 제한 값만 사용되도록 하려면 DataCacheLocalCacheInvalidationPolicy.TimeoutBased를 지정합니다. 시간 제한 외에도 캐시 알림이 사용되도록 하려면 DataCacheLocalCacheInvalidationPolicy.NotificationBased를 지정합니다. 자세한 내용은 캐시 클라이언트 및 로컬 캐시(Windows Server AppFabric 캐싱)를 참조하십시오.

  3. 무효화 정책에 대해 DataCacheLocalCacheInvalidationPolicy.NotificationBased를 선택한 경우 로컬에 캐시된 개체에 대한 업데이트 알림을 위해 캐시 클라이언트가 캐시 클러스터와 통신하는 빈도를 나타내는 폴링 간격을 선택적으로 제어할 수 있습니다. 이렇게 하려면 DataCacheNotificationProperties 클래스의 인스턴스를 만듭니다. 생성자의 매개 변수에 적절한 값을 전달하여 알림 설정을 구성합니다.

    1. PollInterval 매개 변수를 사용하여 캐시 클라이언트가 캐시 클러스터에서 캐시 알림을 확인할 빈도 간격을 나타내는 System.Timespan 개체를 지정합니다. 캐시 알림에는 로컬 캐시가 필요하지 않습니다. 자세한 내용은 캐시 알림(Windows Server AppFabric 캐싱)을 참조하십시오.

    2. MaxQueueLength 매개 변수는 알림의 큐 길이를 제어하지만 구체적으로 로컬 캐시에 영향을 주지 않습니다. 기본값은 16384입니다.

  4. DataCacheFactoryConfiguration 클래스의 인스턴스를 만듭니다.

  5. DataCacheFactoryConfiguration 개체의 Servers 속성에 첫 번째 단계의 캐시 호스트 배열을 할당하여 캐시 호스트를 구성합니다.

  6. DataCacheFactoryConfiguration 개체의 LocalCacheProperties 속성에 두 번째 단계에서 만든 DataCacheLocalCacheProperties 개체를 할당하여 로컬 캐시를 구성합니다.

  7. 필요한 경우 DataCacheFactoryConfiguration 개체의 NotificationProperties 속성에 세 번째 단계에서 만든 DataCacheNotificationProperties 개체를 할당하여 알림 속성을 구성합니다.

  8. DataCacheFactory 클래스의 생성자에 DataCacheFactoryConfiguration 개체를 전달합니다.

  9. GetCache 메서드를 사용하여 DataCacheFactoryConfiguration 개체의 설정을 기준으로 DataCache 클래스를 가져옵니다.

참고

로컬 캐시 무효화 정책에 대해 DataCacheLocalCacheInvalidationPolicy.NotificationBased를 선택한 경우 대상 캐시가 알림을 사용할 수 있도록 구성되어 있어야 합니다. 자세한 내용은 Windows PowerShell을 사용하여 Windows Server AppFabric 캐싱 기능 관리를 참조하십시오.

예제

이 예에서는 로컬 캐시를 사용할 수 있는 캐시 클라이언트를 프로그래밍 방식으로 구성하는 방법을 보여 줍니다. 이 클라이언트는 NamedCache1이라는 캐시를 사용하고 CacheServer2라는 캐시 서버를 가리키도록 구성되어 있습니다. 사용자 응용 프로그램에서 이 예를 사용하려면 이 예의 서버 속성을 해당 캐시 서버의 속성으로 바꿉니다. 클러스터의 다른 캐시 호스트에 대해 각각 DataCacheServerEndPoint 개체를 servers 배열에 추가합니다.

리드 호스트로 지정된 캐시 호스트를 지정합니다. 리드 호스트는 일반적으로 클러스터에 설치된 첫 번째 캐시 서버입니다. 리드 호스트에 대한 자세한 내용은 Windows Server AppFabric 캐싱 실제 아키텍처 다이어그램을 참조하십시오. Windows PowerShell 관리 도구를 사용하여 리드 호스트를 결정할 수 있습니다. Windows PowerShell에 대한 자세한 내용은 Windows PowerShell을 사용하여 Windows Server AppFabric 캐싱 기능 관리를 참조하십시오. 먼저 서버 배열이 생성됩니다. 이 예에서는 CacheServer2라는 캐시 호스트를 구성합니다.

' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);

다음에는 DataCacheLocalCacheProperties 개체를 만듭니다. 이 예에서는 개체 수를 10000개로, 시간 제한을 30초로 지정하여 로컬 캐시를 만듭니다.

' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)

localCacheConfig = New DataCacheLocalCacheProperties(10000, _
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);

localCacheConfig = new DataCacheLocalCacheProperties(10000, 
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

다음에는 DataCacheFactoryConfiguration 개체를 만듭니다. Servers 속성에 servers 배열을 할당합니다. LocalCacheProperties 속성에 localCacheConfig 개체를 할당합니다.

' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration

factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = 
   new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

DataCacheFactory 클래스 생성자에 DataCacheFactoryConfiguration 개체를 전달하고 GetCache 메서드를 사용하여 캐시 클라이언트를 인스턴스화합니다. 이 예에서는 NamedCache1이라는 캐시에 대해 캐시 클라이언트를 만듭니다.

' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)

' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");

참고

성능을 위해 캐시 사용 응용 프로그램에서 만드는 DataCacheFactory 개체 수를 최소화하는 것이 좋습니다. 캐시 클라이언트를 사용하는 응용 프로그램의 모든 부분에서 사용할 수 있는 변수에 DataCacheFactory 개체를 저장합니다.

참고 항목

개념

Windows Server AppFabric 캐시 클라이언트 시작
캐시 클라이언트 로깅 수준 변경(Windows Server AppFabric 캐싱)
캐시 클라이언트 및 로컬 캐시(Windows Server AppFabric 캐싱)
Windows Server AppFabric 캐싱 개념
캐시 클라이언트 개발(Windows Server AppFabric 캐싱)

다른 리소스

XML을 사용하여 캐시 클라이언트 구성

  2011-12-05