다음을 통해 공유


캐시 알림(Windows Server AppFabric 캐싱)

Windows Server AppFabric에서는 캐시 클러스터에서 다양한 캐시 작업이 수행될 때 응용 프로그램이 비동기 알림을 받을 수 있도록 캐시 알림을 제공합니다. 캐시 알림은 로컬에 캐시된 개체의 자동 무효화 기능도 제공합니다. 자세한 내용은 만료 및 제거(Windows Server AppFabric 캐싱)를 참조하십시오.

비동기 캐시 알림을 받으려면 응용 프로그램에 캐시 알림 콜백을 추가합니다. 콜백을 추가할 때 캐시 알림을 트리거하는 캐시 작업 유형과 지정한 작업이 수행될 때 호출할 응용 프로그램의 메서드를 정의합니다. 이 항목에서는 이 프로세스에 대해 자세히 설명합니다.

참고

캐시 알림을 사용하려면 Windows PowerShell 기반 캐시 관리 도구에서 New-Cache 또는 Set-CacheConfig Windows PowerShell 명령을 사용하여 명명된 캐시에서 캐시 알림을 사용하도록 설정해야 합니다.

캐시 알림 트리거

다음 그림에 표시된 것처럼 영역 및 캐시된 개체(캐시 내의 항목으로 참조됨)의 변경 내용은 모두 캐시 알림을 트리거할 수 있습니다.

캐시 알림을 트리거하는 변경 내용

이러한 캐시 작업은 DataCacheOperations 클래스의 멤버에 의해 정의됩니다.

영역 작업

영역에서 다음 캐시 작업이 수행되면 응용 프로그램이 캐시 알림을 받을 수 있습니다.

항목 작업

캐시된 개체(캐시 내의 항목으로 참조됨)에 대해 다음 캐시 작업이 수행되면 응용 프로그램이 캐시 알림을 받을 수 있습니다.

  • AddItem: 캐시에 항목을 추가할 때

  • ReplaceItem: 캐시에서 항목을 바꿀 때

  • RemoveItem: 캐시에서 항목을 제거할 때

참고

이러한 항목 작업 자체는 영역 내에서 수행되었는지 여부에 종속되지 않습니다. 콜백의 알림 범위를 특정 영역으로 제한할 수 있습니다. 이 내용에 대해서는 이 문서의 알림 범위 섹션에서 설명합니다.

알림 범위

응용 프로그램의 작업과 요구에 따라 전체 캐시에 있는 모든 개체와 영역의 이벤트를 확인하는 것이 부적절한 경우도 있습니다. AppFabric을 사용하면 캐시 수준에서 영역 수준 및 항목 수준에 이르기까지 알림 범위를 좁힐 수 있습니다. 다음 다이어그램에 표시된 것처럼 콜백을 추가할 때 선택한 알림 범위에 따라 수신되는 캐시 알림이 크게 달라집니다.

캐시 알림 범위

캐시 수준에서는 응용 프로그램이 캐시에 있는 모든 개체와 영역의 모든 캐시 작업에 대해 알림을 받을 수 있습니다. 영역 수준에서는 응용 프로그램이 단일 영역과 이 영역에 있는 개체의 캐시 작업에 대해서만 알림을 받습니다. 항목 수준에서는 응용 프로그램이 단일 개체와 관련된 캐시 작업에 대해서만 알림을 받습니다.

원하는 알림 범위를 지정하려면 다음 세 메서드 중 하나를 선택하여 캐시 알림 콜백을 추가합니다.

  • AddCacheLevelCallback: 모든 영역과 항목에서 수행되는 영역 및 항목 기반의 캐시 작업에 대해 알림을 받으려는 경우

  • AddRegionLevelCallback: 하나의 특정 영역에서 수행되는 영역 및 항목 기반의 캐시 작업에 대해 알림을 받으려는 경우

  • AddItemLevelCallback: 하나의 특정 항목에서 수행되는 항목 기반의 캐시 작업에 대해 알림을 받으려는 경우

알림 순서

캐시 클라이언트가 받는 알림 순서는 단일 영역의 컨텍스트 내에서 보장됩니다. 예를 들어, RegionA라는 영역을 만들었다고 가정해 보십시오. 캐시 영역에 있는 모든 데이터는 동일한 영역에 제한되므로 RegionA(영역 수준 알림 범위)와 관련된 모든 캐시 작업은 서로를 기준으로 적절한 순서로 캐시 클라이언트에 도착합니다. 다른 캐시 호스트에서 수행된 영역 및 항목 기반 캐시 작업은 RegionA에서 수행된 작업을 기준으로 적절한 순서로 도착하지 않을 수도 있습니다.

성능을 위해 둘 이상의 영역 또는 동일한 영역에 저장되지 않은 개체와 관련된 알림 순서는 보장할 수 없습니다.

항목 이벤트에 대한 DataCacheItemVersion 개체 형식의 버전 정보는 version 매개 변수를 사용하여 캐시 알림에서 호출한 메서드로 전달됩니다. 이 DataCacheItemVersion 개체는 항목 이벤트를 트리거한 개체의 버전에 해당합니다. CompareTo 메서드를 사용하면 버전을 비교하여 먼저 도착한 캐시 작업을 확인할 수 있습니다.

참고

버전 비교는 동일한 키로 지정된, 동일한 항목의 버전을 비교하는 경우에만 의미가 있습니다. 서로 다른 키의 버전을 비교하여 순서를 유추할 수는 없습니다. CompareTo 메서드에서 결과를 반환할 수는 있지만 이 결과는 동일한 키의 버전에만 유효합니다.

폴링 간격

캐시 알림을 사용하면 응용 프로그램은 일정한 간격으로 캐시 클러스터를 검사하여 새 알림을 사용할 수 있는지 확인합니다. 이 간격을 폴링 간격이라고 하며, 기본적으로 매 300초로 설정되어 있습니다.

폴링 간격은 응용 프로그램 구성 설정에서 초 단위로 지정됩니다. 특정 간격을 지정하려면 응용 프로그램 구성 파일에서 clientNotifications 요소의 pollInterval 특성을 사용할 수 있습니다. DataCacheFactoryConfiguration 개체의 NotificationProperties 속성을 사용하여 프로그래밍 방식으로 특정 폴링 간격을 지정할 수도 있습니다.

알림이 손실되는 경우

캐시 호스트는 일정한 양의 캐시 작업만 메모리에 포함할 수 있습니다. 시스템 로드에 따라 일부 캐시 클라이언트는 캐시 호스트 큐에서 알림이 잘리기 전에 알림을 받지 못할 수 있습니다. 클러스터의 나머지 부분은 여전히 실행 중이지만 캐시 서버에 오류가 발생하여 데이터가 손실된 경우 캐시 클라이언트에서 알림이 누락될 수도 있습니다. 이 경우 캐시 클라이언트는 오류 알림을 사용하여 일부 캐시 알림이 누락된 것을 검색할 수 있습니다. 응용 프로그램은 AddFailureNotificationCallback 메서드를 사용하여 오류 알림을 받을 콜백을 추가할 수 있습니다. 자세한 내용은 오류 알림 콜백 추가(Windows Server AppFabric 캐싱)를 참조하십시오.

캐시 클러스터가 손실되는 경우

알림 손실과 캐시 클러스터 손실에는 중요한 차이점이 있습니다. 응용 프로그램에서 하나 이상의 알림이 손실되는 경우 오류 알림을 통해 해당 손실을 알 수 있습니다. 전체 캐시 클러스터가 중지, 다시 시작 또는 다른 방식으로 손실된 경우에는 알림이 트리거되지 않습니다. 대신 캐시 클라이언트는 다음에 캐시를 사용하려고 할 때 클러스터와 연결할 수 없는 경우 예외를 발생시킵니다.

참고

캐시 알림은 데이터 관련 변경 내용만 클러스터의 영역 및 캐시 항목에 보고하고 클러스터 자체의 이벤트는 보고하지 않습니다.

캐시 알림 사용

캐시 알림 기능은 클러스터 구성 설정의 캐시 수준에서 구성됩니다. New-Cache 명령에 NotificationsEnabled 스위치를 사용하여 처음으로 캐시를 만들 때 캐시 속성으로 캐시 알림 기능을 사용하도록 설정할 수 있습니다. 기본적으로 새 캐시를 만들면 캐시 알림 기능을 사용할 수 없습니다. 캐시 구성 설정 편집에 대한 자세한 내용은 Windows PowerShell을 사용한 캐시 구성 설정 편집(Windows Server AppFabric 캐싱)을 참조하십시오.

캐시 알림을 받을 콜백을 추가하기 위해 응용 프로그램 구성 설정이 필요하지는 않습니다. 응용 프로그램 구성 설정을 사용하여 특정 폴링 간격을 지정할 수 있습니다. 기본적으로 폴링 간격은 300초입니다. 다른 기간을 지정하려는 경우 XML 기반 응용 프로그램 구성 파일의 clientNotification 요소를 사용하거나 DataCacheFactoryConfiguration 개체의 NotificationsProperties 속성을 사용하여 프로그래밍 방식으로 원하는 간격을 지정합니다.

캐시 알림 사용

캐시 알림을 사용하도록 설정한 후 캐시 알림 사용과 관련된 세 가지 작업이 있습니다. 해당 작업은 캐시 알림 콜백 추가, 오류 알림 콜백 추가 및 캐시 알림 콜백 제거입니다. 이러한 각 작업의 절차에 대해서는 캐시 알림 사용(Windows Server AppFabric 캐싱)에서 설명합니다.

참고 항목

개념

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

  2011-12-05