내보내기(0) 인쇄
모두 확장

알림(Azure 캐시의 역할 내 캐시)

업데이트 날짜: 2013년 6월

Azure에서는 캐시 클러스터에서 다양한 캐시 작업을 수행할 때 응용 프로그램이 비동기 알림을 받을 수 있도록 캐시 알림을 제공합니다. 캐시 알림은 로컬로 캐시된 개체의 자동 무효화 기능도 제공합니다.

비동기 캐시 알림을 받으려면 응용 프로그램에 캐시 알림 콜백을 추가합니다. 콜백을 추가할 때 캐시 알림을 트리거하는 캐시 작업 유형과 지정된 작업을 수행할 때 호출되는 응용 프로그램의 메서드를 정의합니다. 명명된 캐시는 캐시 알림을 옵트인하거나 사용하도록 설정해야 합니다.

알림은 역할 내 역할 내 캐시을 사용할 때에만 지원됩니다. 공유 캐싱에서는 알림이 지원되지 않습니다. 즉 알림을 사용하여 공유 캐싱에서 로컬 캐시를 무효화할 수 없습니다.

캐시 알림 트리거

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

영역 작업

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

항목 작업

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

  • AddItem: 항목이 캐시에 추가될 때

  • ReplaceItem: 항목이 캐시에서 바뀔 때

  • RemoveItem: 항목이 캐시에서 제거될 때

note참고
이러한 항목 작업 자체는 영역 내에서 수행되었는지 여부에 좌우되지 않습니다. 콜백의 알림 범위를 특정 영역으로 제한하도록 선택할 수 있습니다. 이 내용은 이 문서의 알림 범위 섹션에서 설명합니다.

알림 범위

응용 프로그램의 작업과 요구 사항에 따라 전체 캐시에 있는 모든 개체와 영역의 이벤트를 확인하고자 하지 않을 수 있습니다. 캐시 수준에서 영역 수준 및 항목 수준에 이르기까지 알림 범위를 좁힐 수 있습니다. 콜백을 추가할 때 선택한 알림 범위는 수신할 캐시 알림에 상당한 영향을 미칩니다.

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

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

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

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

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

알림 순서

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

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

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

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

폴링 간격

캐시 알림을 사용하면 응용 프로그램은 일정한 간격으로 캐시 클러스터를 검사하여 새 알림을 사용할 수 있는지 확인합니다. 이 간격을 폴링 간격이라고 하며, 기본적으로 매 300초로 설정되어 있습니다. 쓰기 작업을 자주 수행하는 응용 프로그램은 값을 더 작게 설정하려고 할 수 있지만 자주 변경하지 않는 캐시의 경우 더 큰 간격 값을 지정하는 것이 나을 수 있습니다. 대부분의 일반 캐시에는 기본값인 300초가 적합합니다.

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

알림이 손실되는 경우

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

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

알림 손실과 캐시 클러스터 손실 간에는 중요한 차이점이 있습니다. 응용 프로그램에서 하나 이상의 알림이 손실되는 경우 오류 알림을 통해 해당 손실을 알 수 있습니다. 전체 캐시 클러스터가 중지, 다시 시작되거나 다른 방식으로 손실되는 경우에는 알림이 트리거되지 않습니다. 대신 캐시 클라이언트가 다음에 캐시를 사용하려고 할 때 클러스터와 연결할 수 없으면 예외를 발생시킵니다. 캐시 생성 또는 삭제와 같은 캐시 클러스터 이벤트는 알림으로 보고되지 않습니다. 알림을 등록한 후 서버에서 캐시가 삭제되면 알림이 더 이상 수신되지 않습니다. 캐시가 존재하지 않는 경우와 작업이 캐시에서 수행되지 않는 경우를 구분할 수는 없습니다.

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

캐시 알림 사용

캐시 알림 기능은 클러스터 구성 설정의 캐시 수준에서 구성됩니다. 이 기능은 캐시 속성으로, 캐시를 처음 만들 때 사용하도록 설정할 수 있습니다. 기본적으로 새 캐시를 만들면 캐시 알림 기능이 사용하도록 설정되어 있지 않습니다.

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

캐시 알림 사용

캐시 알림을 사용하도록 설정한 후 캐시 알림을 사용하는 일과 관련된 작업이 세 가지 있습니다. 즉 캐시 알림 콜백을 추가하고 오류 알림 콜백을 추가하며 캐시 알림 콜백 제거하는 작업입니다. 이러한 각 작업의 절차는 이 문서 나머지 부분에 설명되어 있습니다.

참고 항목

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft