título: Notificaciones de eventos en caché: descripción general: reciba actualizaciones de caché en tiempo real con notificaciones de eventos, lo que permite compartir y administrar datos sin problemas entre aplicaciones.
canónico: https://www.alachisoft.com/resources/docs/ncache/prog-guide/events-overview.html
Notificaciones de eventos en caché: una descripción general
En un paradigma de almacenamiento en caché distribuido, es posible que su aplicación cliente deba recibir notificaciones sobre la variedad de operaciones que ocurren en el caché. NCache Puede generar diferentes tipos de eventos mientras que sus aplicaciones cliente pueden registrarse para eventos de interés.
Note
Esta función solo está disponible en NCache Enterprise.
A continuación se muestran algunos puntos clave relacionados con los eventos en la caché:
- Un evento se genera solo si una aplicación cliente se ha registrado para él.
- Un evento se publica solo para clientes suscritos.
- La memoria caché determina cuándo se genera un evento y el cliente determina la acción que se llevará a cabo en respuesta a un evento.
- Un cliente puede registrarse para múltiples eventos y también puede manejar múltiples eventos desde múltiples cachés.
Note
Una aplicación no podrá recibir eventos a menos que se registre en el caché mediante la llamada API de registro de eventos específica.
Importancia de las notificaciones de eventos en caché
En la actualidad, muchas aplicaciones necesitan compartir datos de forma asíncrona entre sí durante el tiempo de ejecución para proporcionar integridad de datos. Además, necesitan actualizar su estado de datos o sincronizar la instantánea de datos con el estado del lado del servidor. Por lo tanto, la aplicación necesita un mecanismo para monitorear su estado de datos con el servidor. Las notificaciones de eventos proporcionan este mecanismo para notificar a la aplicación cliente cada vez que se modifican los datos en la memoria caché.
Por lo tanto, los eventos permiten uso compartido de datos en tiempo de ejecución entre aplicaciones separadas o módulos separados de la misma aplicación. Además, la obtención de datos basada en eventos respaldada por NCache permite que las aplicaciones cliente reciban datos sin ninguna solicitud explícita de obtención de datos al servidor de caché.
Eventos en NCache
Se pueden generar eventos para actividades a nivel de caché específicas de datos u operaciones de administración. Aquí, categorizamos eventos y discutimos detalles relevantes.
Eventos específicos de datos
Como su nombre lo indica, estos eventos se activan cuando los datos en el caché se modifican debido a add, actualizacióno remove operaciones. Además de estas operaciones CRUD básicas, los eventos específicos de datos también se activan cuando se agregan, actualizan o eliminan datos en la memoria caché debido a Cargador/actualizador de inicio de caché y Fuente de respaldo.
Para registrar estos eventos para su notificación, el MessagingService.RegisterCacheNotification
Se utiliza el método. De manera similar, las notificaciones de datos específicos se pueden cancelar fácilmente si ya no son necesarias, utilizando el MessagingService.UnRegisterCacheNotification
método.
Debe especificar el apropiado EventType
mientras se registra para eventos específicos de datos usando Tipo de evento enumeración Las siguientes notificaciones se pueden disparar en función de las registradas EventType
:
Añadir notificación: La notificación de adición se activa cuando el
ItemAdded
Se registra el tipo de evento y se agrega un nuevo elemento a la caché.Notificación de actualización: La notificación de actualización se activa cuando el
ItemUpdated
se registra el tipo de evento y se actualiza un elemento existente en la memoria caché.Eliminar notificación: La notificación de eliminación se activa cuando el
ItemRemoved
se registra el tipo de evento y se elimina un elemento de la memoria caché.
También puede controlar la información devuelta sobre la ejecución de un evento usando Filtro de datos de evento que se discute más adelante en Filtros de eventos .
Los eventos específicos de datos se pueden categorizar de la siguiente manera:
Eventos de nivel de caché
Eventos de nivel de caché son eventos generales para la memoria caché que se activan con la ejecución del Añada, Actualizaro Eliminar operaciones en datos de caché. El propósito es notificar a diferentes clientes sobre cada operación realizada en el caché.
advertencia
Los eventos de nivel de caché pueden degradar el rendimiento de su aplicación cuando se registran notificaciones para todas las operaciones en todo el conjunto de datos de caché.
De forma predeterminada, los eventos de nivel de caché están deshabilitados (excepto para la operación de borrado de caché) para cualquier configuración de caché y deben estar habilitados para que los eventos se publiquen usando el NCache Centro de gestion.
Eventos de nivel de artículo
Eventos de nivel de artículo puede ser útil cuando desea recibir notificaciones sobre un conjunto limitado de datos en lugar de cada operación realizada en el caché. Por ejemplo, si la memoria caché contiene una gran cantidad de datos y recibe una notificación cada vez que se produce un cambio en el conjunto de datos, provoca una sobrecarga y el rendimiento de la aplicación se ve afectado.
Note
Para un mejor rendimiento, puede registrar notificaciones solo para el conjunto de datos de interés.
El caché será responsable de monitorear los cambios de las claves especificadas. Dado que el conjunto de datos seleccionado ya existe en la caché, los eventos de nivel de elemento se reciben únicamente en la operación de actualización o eliminación. Las aplicaciones registran métodos de devolución de llamada para una clave específica en el caché mediante llamadas API y reciben una notificación cuando esa clave se actualiza o se elimina del caché. Estas notificaciones se envían de forma asincrónica al cliente, por lo que no hay gastos generales en las actividades del cliente.
Note
Dado que los eventos de nivel de elemento se registran para el conjunto de datos que ya está en la memoria caché, no se puede recibir ninguna notificación de adición.
Eventos de nivel de gestión
Eventos de nivel de gestión puede registrarse para recibir una notificación cuando se realice cualquier operación de administración en el clúster de caché utilizando el Servicio de notificación de la interfaz del.
Estos eventos se pueden utilizar para la validación y ver si las operaciones continúan en el caché o no. Por ejemplo, el cliente es una aplicación multiproceso donde un hilo se dedica a insertar elementos a un ritmo constante. Si el caché se detiene durante la inserción, el NCache el cliente tirará OperationFailedException
. Para evitar que se produzca la excepción, el subproceso debe tomar las medidas adecuadas al detener la memoria caché. Esto se puede lograr simplemente registrándose para un evento contra la acción de detención de caché.
Este ejemplo también se aplica a las notificaciones de borrado de caché si el subproceso de la aplicación cliente valida las operaciones durante su ejecución mientras se borra el caché. Todas las validaciones fallarán si la aplicación cliente no considera un evento de borrado de caché.
Las siguientes notificaciones se activan cuando se realizan operaciones de administración en la memoria caché:
Notificación de borrado de caché: La notificación de borrado de caché se activa cuando se borra el caché.
Notificación de parada de caché: La notificación de caché detenida se activa cuando se detiene la caché. Si una aplicación continúa realizando operaciones cuando se detiene la memoria caché sin saber que la memoria caché se detuvo, se generará una excepción para las operaciones realizadas.
Notificación de ingreso de miembro: La notificación de miembro unido se activa cuando un miembro se une al clúster. Un administrador de caché o un usuario que monitoree el estado del caché durante las operaciones podría automatizar sus tareas para monitorear el estado del clúster. Por lo tanto, si un miembro se une al clúster, el evento debe manejarse para evitar cualquier interrupción en las tareas automatizadas.
Notificación de izquierda del miembro: La notificación de abandono de miembro se activa cuando un miembro abandona el clúster.
Eventos de actividad del cliente
Los eventos de actividad del cliente notifican la conexión/desconexión de clientes. Cada cliente conectado a una caché agrupada puede suscribirse a estos eventos para recibir notificaciones sobre los eventos de conexión/desconexión de otros clientes.
También puede especificar el Período de retención, que es el tiempo después del cual un cliente desconectado se considera desconectado y se activa su evento de desconexión. Si un cliente se vuelve a conectar dentro del período de retención, su evento de desconexión no se activa.
Esto es para compensar las desconexiones accidentales que se produzcan debido a errores en las redes desde que NCache el cliente se vuelve a conectar automáticamente en dichas redes sin interrumpir las operaciones del cliente. Tenga en cuenta que esto no se aplica a los clientes que se desechan y reinicializan manualmente.
Tu necesitas habilitar las notificaciones de actividad del cliente in NCache Centro de gestion antes de usar.
Filtros de datos de eventos
NCache proporciona un EventDataFilter
para controlar la cantidad de información devuelta tras la ejecución de eventos específicos de datos. Los tipos de filtros de eventos se explican a continuación.
advertencia
El filtro de datos de eventos debe configurarse cuidadosamente para evitar el consumo innecesario de ancho de banda de la red.
Ninguna
Este filtro devuelve solo las claves afectadas por la operación en la notificación del evento. Esto se usa si la aplicación solo está interesada en saber qué teclas se vieron afectadas. Por ejemplo, un sitio de comercio electrónico quiere saber qué claves de producto se agregaron y no los valores en sí.
metadatos
Con este filtro, las claves afectadas junto con sus metadatos se devuelven en la notificación del evento. Los metadatos que se devuelven incluyen el grupo de XNUMX, prioridad de elemento de caché, caducidad, Versión de elemento de caché, Opciones de resincronización, Elemento de caché eliminadoMotivoy Tipo de entrada. Esta información puede ser requerida por el usuario. Por ejemplo, cuando una aplicación quiere saber qué claves se eliminaron del caché y a qué grupos pertenecían.
DatosConMetadatos
Este filtro devuelve las claves junto con los elementos almacenados en caché y sus metadatos asociados. Esto se puede usar en los casos en que una aplicación necesita procesar los datos modificados. Por ejemplo, una aplicación bancaria puede requerir saber qué información del cliente ha sido modificada. Por lo tanto, puede registrar notificaciones para operaciones de actualización de elementos con este filtro para que la clave del elemento y el elemento modificado también se devuelvan al usuario una vez que se active el evento.
Usando el DataWithMetadata
El filtro guarda un viaje cuando vuelve a buscar elementos con el Recibe API. Sin embargo, este filtro debe usarse cuando sea necesario, ya que puede provocar un acaparamiento de la red cuando la cantidad de datos devueltos es enorme.
advertencia
En caso de desconexión del cliente, los eventos no se registran durante el lapso de tiempo desconectado del cliente.
Comportamiento inteligente de topología
Las notificaciones de eventos se activan según la topología de caché que se utilice. El comportamiento en cuanto a topología para las notificaciones de eventos se describe a continuación:
Topología de espejo: En la topología espejo, un nodo activo del clúster es responsable de notificar el evento al cliente.
Topología replicada: En la topología replicada, el nodo del clúster que está conectado al cliente es responsable de generar las notificaciones de eventos.
Topología de partición-réplica: En la topología de partición-réplica, los eventos se activan desde los nodos activos. El nodo donde residen los datos basados en criterios es responsable de las notificaciones de eventos.
Topología particionada: En la topología con particiones, los eventos se activan desde todos los nodos. El nodo donde residen los datos basados en criterios es responsable de las notificaciones de eventos.
Vea también
.NETO: Alachisoft.NCache.Eventos.en.tiempo.de.ejecución espacio de nombres
Java: com.alachisoft.ncache.eventos espacio de nombres
Nodo.js: Elemento de caché de evento clase.
Pitón: ncache.eventos.de.almacenamiento.en.caché en tiempo de ejecución clase.