다음을 통해 공유


프로그래밍 모델(Windows Server AppFabric 캐싱)

Windows Server AppFabric 프로그래밍 모델은 캐시 배제 프로그래밍 패턴에 맞게 사용자 지정됩니다. 즉, 캐시에 데이터가 없는 경우 AppFabric 분산 캐시가 아니라 응용 프로그램이 원래 데이터 원본에서 캐시로 데이터를 다시 로드해야 합니다. 응용 프로그램 코드는 인스턴스화된 이후 캐시 클라이언트라고도 하는 DataCache 클래스를 사용합니다.

캐싱 전략

응용 프로그램 코드가 캐시와 관계없이 작동할 수 있고 캐시된 데이터를 항상 사용할 필요가 없도록 응용 프로그램 코드를 디자인해야 합니다. 캐시의 데이터는 영구적으로 지속되지 않으므로 캐시의 데이터를 사용하지 못할 수 있습니다.

고가용성 기능을 통해 클러스터가 실행되는 동안 개별 캐시 호스트에서 컴퓨터 및 프로세스 오류를 방지할 수 있습니다. 그러나 전체 클러스터가 중단되는 경우가 발생할 수 있습니다. 예를 들어, 너무 많은 리드 호스트가 중단되는 경우에는 전체 클러스터가 종료됩니다. 자세한 내용은 리드 호스트 및 클러스터 관리(Windows Server AppFabric 캐싱)를 참조하십시오.

코드에서 캐시 누락이 발생할 수 있는 다른 원인은 다음과 같습니다. 캐시 항목이 만료 또는 제거되었거나, 캐시 서버가 다시 부팅되었거나, 캐시 서비스가 다시 시작되었거나, 캐시 클러스터가 실수로 다시 시작되었을 수 있습니다. 원인과 관계없이 응용 프로그램 코드는 캐시된 개체를 사용할 수 없는 경우 데이터베이스나 다른 데이터 원본에 액세스할 수 있어야 합니다.

캐시 클라이언트

데이터를 캐시에 저장하려면 GetCache 메서드 또는 GetDefaultCache 메서드를 사용하여 DataCache 개체를 반환합니다. 이 DataCache 개체는 인스턴스화된 후 캐시 클라이언트라고 합니다.

참고

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

캐시 클라이언트의 동작을 구성할 수 있는 다양한 옵션을 사용할 수 있습니다. 이러한 구성 설정을 프로그래밍 방식 또는 응용 프로그램 구성 파일을 통해 지정하거나 두 방법을 모두 사용하여 지정할 수 있습니다. 캐시 클라이언트 및 사용 가능한 응용 프로그램 구성 설정에 대한 자세한 내용은 캐시 클라이언트 및 로컬 캐시(Windows Server AppFabric 캐싱)응용 프로그램 구성 설정(Windows Server AppFabric 캐싱)을 참조하십시오.

둘 이상의 캐시 클라이언트가 동시에 단일 캐시에 액세스할 수 있습니다. 서로 다른 컴퓨터에서 실행되는 응용 프로그램은 동일한 캐시를 사용하도록 구성된 캐시 클라이언트를 인스턴스화하여 이 작업을 수행할 수 있습니다. 다음 코드 예제에서 이 개념을 보여 줍니다. 서로 다른 캐시 클라이언트 인스턴스에서 실행되는 코드를 식별하기 위해 설명을 사용합니다.

'Each application has a similar GetCache method call
Dim myCacheFactory As DataCacheFactory = New DataCacheFactory()
Dim catalog As DataCache = myCacheFactory.GetCache("catalog")

'One cache client saves an object to the catalog named "toy101"
Call catalog.Put("toy101", New ToyObject("toy101", "Playschool"))

'The same or different cache client retrieves the object
Dim toy As ToyObject = CType(catalog.Get("toy101"), ToyObject)

'The same or a different cache client removes the object
catalog.Remove("toy101")
//Each application has a similar GetCache method call
DataCacheFactory myCacheFactory = new DataCacheFactory();
DataCache catalog = myCacheFactory.GetCache("catalog");

//One cache client saves an object to the catalog named "toy101"
catalog.Put("toy101", new ToyObject("toy101", "Playschool"));

//The same or different cache client retrieves the object
ToyObject toy = (ToyObject)catalog.Get("toy101");

//The same or a different cache client removes the object
catalog.Remove("toy101");

참고 항목

개념

Windows Server AppFabric 캐싱 실제 아키텍처 다이어그램
Windows Server AppFabric 캐싱 논리 아키텍처 다이어그램
캐시 클라이언트 개발(Windows Server AppFabric 캐싱)

  2011-12-05