NCache런타임 데이터 공유를 위한 의 메시징

오늘날 많은 애플리케이션은 런타임 시 비동기적으로 서로 데이터를 공유해야 합니다. 그리고 관계형 데이터베이스는 효율적인 이벤트 알림 메커니즘을 제공하지 않으며 성능과 확장성이 주요 관심사입니다.

메시지 큐는 순차 메시지를 제공하고 메시지 전달을 보장하지만 성능 및 확장성 문제도 있습니다.

가장 좋은 방법은 빠르고 확장 가능하며 생산자/소비자 스타일의 데이터 공유 조정을 제공하는 메시지 버스 스타일 메시징 플랫폼을 사용하는 것입니다. NCache 매우 빠르고 확장 가능한 분산 캐시이며 간단하고 강력한 메시지 버스 스타일 메시징 기능도 제공합니다.

와 NCache 다음을 수행할 수 있습니다.

  1. 캐시 수준 이벤트: NCache 클라이언트가 캐시의 항목을 추가, 삽입 및 제거할 때 또는 캐시가 지워진 경우 클라이언트가 이러한 이벤트 수신에 관심을 등록한 경우 클라이언트에게 알릴 수 있습니다.
  2. 아이템 레벨 이벤트: NCache 특정 항목 업데이트에 대해 클라이언트에게 알리고 클라이언트가 관심을 등록한 경우 제거할 수 있습니다.
  3. 연속 쿼리 이벤트: NCache SQL과 같은 기준에 따라 캐시의 데이터 세트를 모니터링한 다음 관심을 등록한 클라이언트에게 이 데이터 세트의 항목을 추가, 업데이트 및 제거하도록 클라이언트에 알릴 수 있습니다.
  4. 애플리케이션 시작 사용자 지정 이벤트: 응용 프로그램은 사용자 지정 이벤트를 실행할 수 있습니다. NCache 관심을 등록한 다른 응용 프로그램이 알림을 받을 수 있도록 메시지 버스.
NCache 런타임 데이터 공유를 위한 메시징

연결된 모든 애플리케이션(.NET 또는 Java) NCache 메시징 플랫폼으로 사용하고 이를 통해 다른 애플리케이션으로 이벤트를 전파할 수 있습니다. 또는 캐시에서 특정 일이 발생할 때 이를 알리도록 캐시에 요청할 수 있습니다.

캐시 레벨 이벤트

캐시 수준 이벤트는 추가, 업데이트 또는 제거될 때마다 또는 캐시에서 캐시가 지워지면 시작됩니다. 기본적으로 이러한 이벤트는 매우 수다스러울 수 있으므로 꺼져 있습니다. 그러나 캐시 구성에서 일부 또는 전체를 활성화한 다음 애플리케이션에서 콜백 기능을 제공하도록 할 수 있습니다. NCache so NCache 이러한 이벤트가 발생할 때 이러한 콜백을 호출합니다. 다음은 등록할 수 있는 콜백 유형입니다.


  CacheEventListener listener = new CacheEventListener();
  EnumSet<EventType> _eventType = EnumSet.noneOf(EventType.class);
  
  _eventType.add(EventType.ItemAdded);
  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);
	
  CacheEventDescriptor descripter = _cache.addCacheDataModificationListener(listener,
                                    _eventType, EventDataFilter.None);
                                  

아이템 레벨 이벤트

이러한 이벤트는 특정 항목 업데이트 또는 제거 시 발생하지만 하나 이상의 클라이언트가 이에 대한 콜백을 등록한 경우에만 발생합니다. 다음은 등록할 수 있는 이벤트 및 콜백입니다.


  CacheEventListener listener = new CacheEventListener();
  EnumSet<EventType> _eventType = EnumSet.noneOf(EventType.class);

  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);

  _cache.addCacheDataModificationListener ("Key:1", listener,
                                           _eventType, EventDataFilter.None);

연속 쿼리

연속 쿼리는 다음의 강력한 기능입니다. NCache 이를 통해 캐시에 SQL과 유사한 쿼리를 등록하고 콜백을 호출할 이벤트를 지정할 수 있습니다. NCache.

NCache 그런 다음 캐시 클러스터에 연속 쿼리를 만들고 모든 추가, 업데이트 및 제거 작업을 모니터링하여 이 연속 쿼리 기준과 일치하는 캐시된 항목을 수정하는지 확인합니다. 그렇다면 NCache 클라이언트 애플리케이션에 이에 대해 알립니다.

다음은 등록할 수 있는 이벤트입니다.


  ContinuousQuery cQuery1 = new ContinuousQuery(qry, indexTable);
  ContinuousQueryListener cqListener = new ContinuousQueryListener();
  EnumSet _eventType = EnumSet.noneOf(EventType.class);

  _eventType.add(EventType.ItemAdded);
  _eventType.add(EventType.ItemUpdated);
  _eventType.add(EventType.ItemRemoved);

  cQuery1.addDataModificationListener(cqListener, _eventType,
                                      EventDataFilter.DataWithMetaData);
 

애플리케이션 시작 사용자 지정 이벤트

NCache 애플리케이션이 생산자/소비자 또는 게시/구독 시나리오에서 다른 애플리케이션과 조정되도록 합니다. 한 응용 프로그램에서 데이터를 생성한 다음 사용자 지정 이벤트를 NCache 메시징 및 하나 이상의 애플리케이션이 이 이벤트를 수신하기 위해 대기 중입니다.

애플리케이션이 이러한 사용자 지정 이벤트를 수신하도록 등록하는 방법은 다음과 같습니다.


  public void OnApplicationEvent(object notifId, object data)
	{
	  ...
	} 
  _cache.CustomEvent += new CustomEventCallback(this.OnApplicationEvent);
  

그리고 애플리케이션이 이 사용자 정의 이벤트를 실행하는 방법은 다음과 같습니다. NCache 메시지.


  _cache.RaiseCustomEvent("NotificationID", DateTime.Now);
 

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.