Azure 관리 캐시 서비스 알림

중요

모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.

Microsoft Azure Cache는 명명된 캐시에서 다양한 캐시 작업이 발생할 때 애플리케이션이 비동기 알림을 받을 수 있도록 하는 캐시 알림을 제공합니다. 캐시 알림은 로컬로 캐시된 개체의 자동 무효화도 제공합니다.

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

참고

알림은 표준 및 프리미엄 캐시 기능에서 사용할 수 있으며 기본 캐시 기능에서는 사용할 수 없습니다. 자세한 내용은 Azure Managed Cache Service 대한 캐시 제품을 참조하세요.

캐시 알림 트리거

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

영역 작업

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

  • CreateRegion: 캐시에 지역이 만들어지는 경우

  • ClearRegion: 캐시에서 지역이 지워지는 경우입니다.

  • RemoveRegion: 캐시에서 지역이 제거되는 경우

항목 작업

캐시된 개체(캐시 내 항목이라고 함)에서 다음 캐시 작업을 수행하면 응용 프로그램이 캐시 알림을 받을 수 있습니다.

  • AddItem: 항목이 캐시에 추가되는 경우

  • ReplaceItem: 캐시에서 항목을 바꿀 때입니다.

  • RemoveItem: 캐시에서 항목이 제거되는 경우

참고

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

알림 범위

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

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

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

  • AddCacheLevelCallback: 모든 지역 및 항목에서 발생하는 지역 및 항목 기반 캐시 작업에 대한 알림을 받습니다.

  • AddRegionLevelCallback: 특정 지역에서 발생하는 지역 및 항목 기반 캐시 작업에 대한 알림을 받습니다.

  • AddItemLevelCallback: 하나의 특정 항목에서 발생하는 항목 기반 캐시 작업에 대한 알림을 받습니다.

알림 순서

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

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

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

참고

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

폴링 간격

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

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

알림이 손실되는 경우

Microsoft Azure Cache는 특정 양의 캐시 작업만 메모리에 저장할 수 있습니다. 일부 캐시 클라이언트는 알림 큐에서 알림이 잘리기 전에 알림을 받지 못할 수 있습니다. 캐시 오류로 인해 데이터가 손실되는 경우 캐시 클라이언트에서 알림이 손실될 수 있습니다. 이 경우 캐시 클라이언트는 오류 알림을 사용하여 일부 캐시 알림이 누락된 것을 검색할 수 있습니다. 애플리케이션은 AddFailureNotificationCallback 메서드를 사용하여 오류 알림을 수신하는 콜백을 추가할 수 있습니다. 자세한 내용은 방법: 오류 알림 콜백 추가를 참조하세요.

캐시가 손실되는 경우

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

참고

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

캐시 알림 사용

알림은 관리 포털에 있는 캐시 구성 탭의 명명된 캐시 수준에서 구성됩니다. 알림에 대한 기본 설정은 사용 안 함입니다.

Cache Notifications for Windows Azure Cache Servic

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

캐시 알림 사용

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

참고 항목

기타 리소스

Azure 관리 캐시 서비스 기능