제목: 캐시의 이벤트 알림: 개요 설명: 이벤트 알림을 통해 실시간 캐시 업데이트를 수신하여 애플리케이션 전체에서 원활한 데이터 공유 및 관리를 가능하게 합니다.
정식: https://www.alachisoft.com/resources/docs/ncache/prog-guide/events-overview.html
캐시의 이벤트 알림: 개요
분산 캐싱 패러다임에서 클라이언트 애플리케이션은 캐시에서 발생하는 다양한 작업에 대한 알림을 받아야 할 수 있습니다. NCache 클라이언트 애플리케이션이 관심 있는 이벤트를 등록하는 동안 다양한 유형의 이벤트를 생성할 수 있습니다.
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache Enterprise.
캐시의 이벤트와 관련된 몇 가지 주요 사항은 다음과 같습니다.
- 클라이언트 응용 프로그램이 이벤트에 대해 등록한 경우에만 이벤트가 생성됩니다.
- 이벤트는 등록된 클라이언트에만 게시됩니다.
- 캐시는 이벤트가 발생하는 시기를 결정하고 클라이언트는 이벤트에 대한 응답으로 수행할 작업을 결정합니다.
- 클라이언트는 여러 이벤트에 등록할 수 있으며 여러 캐시에서 여러 이벤트를 처리할 수도 있습니다.
주의 사항
특정 이벤트 등록 API 호출을 사용하여 캐시에 자신을 등록하지 않는 한 애플리케이션은 이벤트를 수신할 수 없습니다.
캐시에서 이벤트 알림의 중요성
오늘날 많은 애플리케이션은 데이터 무결성을 제공하기 위해 런타임 시 서로 비동기적으로 데이터를 공유해야 합니다. 또한 데이터 상태를 업데이트하거나 데이터 스냅샷을 서버 측 상태와 동기화해야 합니다. 따라서 응용 프로그램에는 서버에서 데이터 상태를 모니터링하는 메커니즘이 필요합니다. 이벤트 알림은 캐시에서 데이터가 변경될 때마다 클라이언트 애플리케이션에 알리는 이 메커니즘을 제공합니다.
따라서 이벤트는 런타임 데이터 공유 별도의 응용 프로그램 또는 동일한 응용 프로그램의 별도 모듈 간에. 또한 다음에서 지원하는 이벤트 기반 데이터 가져오기 NCache 클라이언트 애플리케이션이 캐시 서버에 대한 명시적 데이터 페치 요청 없이 데이터를 수신할 수 있도록 합니다.
이벤트 NCache
데이터 또는 관리 작업과 관련된 캐시 수준 활동에 대해 이벤트가 발생할 수 있습니다. 여기에서는 이벤트를 분류하고 관련 세부 사항을 논의합니다.
데이터 특정 이벤트
이름에서 알 수 있듯이 이러한 이벤트는 다음으로 인해 캐시의 데이터가 수정될 때 트리거됩니다. 더하다, 최신 정보및 제거 운영. 이러한 기본 CRUD 작업 외에도 다음으로 인해 캐시에서 데이터가 추가, 업데이트 또는 제거될 때 데이터별 이벤트도 발생합니다. 캐시 시작 로더/새로 고침 와 백업 소스.
알림을 위해 이러한 이벤트를 등록하려면 MessagingService.RegisterCacheNotification
방법이 사용됩니다. 마찬가지로, 더 이상 필요하지 않은 경우 데이터별 알림을 쉽게 등록 취소할 수 있습니다. MessagingService.UnRegisterCacheNotification
방법.
적절한 지정이 필요합니다 EventType
다음을 사용하여 데이터별 이벤트에 등록하는 동안 이벤트 유형 열거. 등록된 정보를 기반으로 다음 알림을 실행할 수 있습니다. EventType
:
알림 추가: 추가 알림은 다음과 같은 경우 트리거됩니다.
ItemAdded
이벤트 유형이 등록되고 캐시에 새 항목이 추가됩니다.업데이트 알림 : 업데이트 알림은 다음과 같은 경우 트리거됩니다.
ItemUpdated
이벤트 유형이 등록되고 캐시에 기존 항목이 업데이트됩니다.알림 제거: 제거 알림은 다음과 같은 경우에 트리거됩니다.
ItemRemoved
이벤트 유형이 등록되고 항목이 캐시에서 제거됩니다.
다음을 사용하여 이벤트 실행 시 반환되는 정보를 제어할 수도 있습니다. 이벤트 데이터 필터 에서 추가로 논의되는 이벤트 필터 안내
데이터별 이벤트는 다음과 같이 추가로 분류할 수 있습니다.
캐시 레벨 이벤트
캐시 레벨 이벤트 실행 시 트리거되는 캐시에 대한 일반 이벤트입니다. 추가, 업데이트및 제거 캐시 데이터에 대한 작업 목적은 캐시에서 수행되는 모든 작업에 대해 서로 다른 클라이언트에 알리는 것입니다.
경고
캐시 수준 이벤트는 전체 캐시 데이터 세트에 대한 모든 작업에 대해 알림이 등록될 때 애플리케이션 성능을 저하시킬 수 있습니다.
기본적으로 캐시 수준 이벤트는 모든 캐시 구성에 대해 비활성화되어 있으며(캐시 지우기 작업 제외) 다음을 사용하여 이벤트를 게시하려면 활성화해야 합니다. NCache 관리 센터.
아이템 레벨 이벤트
아이템 레벨 이벤트 캐시에서 수행되는 모든 작업이 아니라 제한된 데이터 세트에 대한 알림을 받으려는 경우에 유용할 수 있습니다. 예를 들어 캐시에 많은 양의 데이터가 포함되어 있고 데이터 세트에 변경 사항이 발생할 때마다 알림을 받는 경우 오버헤드가 발생하고 애플리케이션의 성능에 영향을 미칩니다.
주의 사항
더 나은 성능을 위해 관심 있는 데이터 세트에 대해서만 알림을 등록할 수 있습니다.
캐시는 지정된 키에 대한 변경 사항을 모니터링하는 역할을 합니다. 선택한 데이터 세트가 캐시에 이미 존재하므로 업데이트 또는 제거 작업 시에만 항목 수준 이벤트가 수신됩니다. 애플리케이션은 API 호출을 사용하여 캐시의 특정 키에 대한 콜백 메서드를 등록하고 해당 키가 캐시에서 업데이트되거나 제거될 때 알림을 받습니다. 이러한 알림은 클라이언트에 비동기식으로 전송되므로 클라이언트 활동에 오버헤드가 발생하지 않습니다.
주의 사항
이미 캐시에 있는 데이터 세트에 대해 Item Level Event가 등록되어 있으므로 추가 알림을 받을 수 없습니다.
관리 수준 이벤트
관리 수준 이벤트 를 사용하여 캐시 클러스터에서 관리 작업이 수행될 때 알림을 받도록 등록할 수 있습니다. 알림 서비스 인터페이스.
이러한 이벤트는 캐시에서 작업이 계속되는지 확인하기 위한 유효성 검사에 사용될 수 있습니다. 예를 들어, 클라이언트는 스레드가 일정한 속도로 항목을 삽입하는 데만 사용되는 다중 스레드 애플리케이션입니다. 삽입 중에 캐시가 중지되면 NCache 클라이언트가 던질 것입니다 OperationFailedException
. 예외가 발생하는 것을 방지하려면 스레드가 캐시 중지 시 적절한 조치를 취해야 합니다. 이는 캐시 중지 작업에 대한 이벤트를 등록하여 간단하게 수행할 수 있습니다.
이 예는 캐시가 지워지는 동안 클라이언트 애플리케이션의 스레드가 실행 중에 작업의 유효성을 검사하는 경우 캐시 지우기 알림에도 적용됩니다. 클라이언트 애플리케이션이 캐시 지우기 이벤트를 고려하지 않으면 모든 유효성 검사가 실패합니다.
캐시에서 관리 작업이 수행되면 다음 알림이 발생합니다.
캐시 삭제 알림: 캐시가 지워지면 캐시 삭제 알림이 발생합니다.
캐시 중지 알림: 캐시 중지 알림은 캐시가 중지되면 발생합니다. 애플리케이션이 캐시가 중지된 것을 알지 못한 채 캐시가 중지되었을 때 작업을 계속 수행하면 수행된 작업에 대해 예외가 발생합니다.
회원 가입 알림: 구성원이 클러스터에 가입하면 구성원 가입 알림이 발생합니다. 캐시 관리자나 작업 중 캐시 상태를 모니터링하는 사용자는 클러스터 상태 모니터링 작업을 자동화할 수 있습니다. 따라서 구성원이 클러스터에 참여하는 경우 자동화된 작업이 중단되지 않도록 이벤트를 처리해야 합니다.
회원 탈퇴 알림: 구성원이 클러스터를 떠날 때 구성원 왼쪽 알림이 시작됩니다.
클라이언트 활동 이벤트
클라이언트 활동 이벤트는 클라이언트의 연결/연결 해제를 알려줍니다. 클러스터 캐시에 연결된 각 클라이언트는 이러한 이벤트를 구독하여 다른 클라이언트의 연결/연결 끊김 이벤트에 대한 알림을 받을 수 있습니다.
또한 연결이 끊긴 클라이언트가 연결이 끊긴 것으로 간주되고 해당 연결 끊기 이벤트가 발생하는 기간인 보존 기간을 지정할 수도 있습니다. 클라이언트가 보존 기간 내에 다시 연결되면 해당 연결 끊기 이벤트가 발생하지 않습니다.
이것은 버그가 있는 네트워크로 인해 발생하는 우발적인 연결 끊김을 보상하기 위한 것입니다. NCache 클라이언트는 클라이언트 작업을 방해하지 않고 이러한 네트워크에서 자동으로 다시 연결합니다. 이것은 수동으로 자체를 삭제하고 다시 초기화하는 클라이언트에는 적용되지 않습니다.
당신은해야 클라이언트 활동 알림 활성화 in NCache 관리 센터 사용하기 전에.
이벤트 데이터 필터
NCache 제공 EventDataFilter
데이터 관련 이벤트 실행 시 반환되는 정보의 양을 제어합니다. 이벤트 필터의 유형은 아래에 설명되어 있습니다.
경고
이벤트 데이터 필터는 불필요한 네트워크 대역폭 소비를 방지하기 위해 신중하게 설정해야 합니다.
없음
이 필터는 이벤트 알림에서 작업의 영향을 받는 키만 반환합니다. 이것은 애플리케이션이 영향을 받은 키를 아는 데에만 관심이 있는 경우에 사용됩니다. 예를 들어 전자 상거래 사이트는 값 자체가 아니라 추가된 제품 키를 알고 싶어합니다.
메타 데이터
이 필터를 사용하면 메타데이터와 함께 영향을 받는 키가 이벤트 알림에 반환됩니다. 반환되는 메타데이터에는 다음이 포함됩니다. 그룹, 캐시 항목 우선 순위, 만료, 캐시 항목 버전, 재동기화 옵션, 캐시 항목 제거 이유및 항목 유형. 이 정보는 사용자에게 필요할 수 있습니다. 예를 들어 애플리케이션이 캐시에서 제거된 키와 해당 키가 속한 그룹을 알고 싶어하는 경우입니다.
데이터와메타데이터
이 필터는 캐시된 항목 및 관련 메타데이터와 함께 키를 반환합니다. 애플리케이션이 수정된 데이터를 처리해야 하는 경우에 사용할 수 있습니다. 예를 들어, 뱅킹 애플리케이션은 어떤 고객 정보가 수정되었는지 알아야 할 수 있습니다. 따라서 이벤트가 발생하면 항목 키와 수정된 항목도 사용자에게 반환되도록 이 필터를 사용하여 항목 업데이트 작업에 대한 알림을 등록할 수 있습니다.
사용법 - DataWithMetadata
필터는 항목을 다시 가져올 때 여행을 저장합니다. 돈을 받아가세요 API. 그러나 이 필터는 반환되는 데이터의 양이 많을 경우 네트워크 호깅을 유발할 수 있으므로 필요한 경우 사용해야 합니다.
경고
클라이언트 연결이 끊긴 경우 클라이언트의 연결이 끊긴 시간 동안 이벤트가 기록되지 않습니다.
토폴로지 현명한 동작
사용 중인 캐시 토폴로지에 따라 이벤트 알림이 발생합니다. 이벤트 알림에 대한 토폴로지 방식 동작은 다음과 같이 설명됩니다.
미러 토폴로지: 미러 토폴로지에서 클러스터의 활성 노드는 클라이언트에 이벤트를 알리는 역할을 담당합니다.
복제된 토폴로지: 복제된 토폴로지에서 클라이언트에 연결된 클러스터의 노드는 이벤트 알림을 발생시키는 역할을 담당합니다.
파티션-복제본 토폴로지: 파티션-복제본 토폴로지에서는 활성 노드에서 이벤트가 발생합니다. 기준 기반 데이터가 있는 노드는 이벤트 알림을 담당합니다.
분할된 토폴로지: 분할된 토폴로지에서 이벤트는 모든 노드에서 시작됩니다. 기준 기반 데이터가 상주하는 노드는 이벤트 알림을 담당합니다.
도 참조
.그물: Alachisoft.NCache.런타임.이벤트 네임 스페이스.
자바 : COM.alachisoft.ncache.이벤트 네임 스페이스.
Node.js : 이벤트 캐시 항목 클래스입니다.
파이썬 : ncache.runtime.caching.events 클래스입니다.