Caso de estudio - NCache aumentar el rendimiento de una aplicación de gestión de tareas

Imagen de cabecera

Después de una fácil migración a NCache, ha comenzado a actuar como el pegamento que mantiene unida nuestra aplicación. Y las diversas características que ofrece han sido una verdadera ventaja, especialmente las colas, que hemos utilizado en exceso.

Analista de soporte de aplicaciones empresariales
 

País o Región:
Europa

Industria:
Defensa militar

Perfil de la compañía:
Este es un departamento de defensa europeo que trabaja para crear una conexión entre varias naciones, permitiéndoles consultar y colaborar en proyectos de seguridad mientras coordina las actividades internacionales de gestión de crisis.

NCache permite a esta organización mantener una alta disponibilidad y acelerar el rendimiento de su aplicación de gestión de tareas.

Descargue el PDF aquí.
 

Introducción

Estas organizaciones exigen alta disponibilidad, coherencia de los datos y una gestión sencilla de las tareas. Esta organización en concreto ha diseñado una aplicación de seguimiento para que la utilicen sus empleados para gestionar información y tareas entre diferentes departamentos. Los empleados inician sesión en la aplicación e ingresan sus tareas diarias. Cada departamento relevante puede supervisar a los empleados y verificar el estado de sus tareas. La empresa utilizó anteriormente Redis para sus procesos de desarrollo, pero enfrentaron limitaciones al implementarlo en sus servidores. Además, como principal contribuyente a la paz en el escenario internacional, querían mejorar su aplicación de seguimiento para recibir notificaciones sobre cualquier cambio que se produjera en tiempo real.

 

Puntos débiles de la aplicación

Requieren un buen mecanismo de almacenamiento en caché. ellos evaluaron Redis. En una etapa temprana, descubrieron que Redis no cumplía con sus requisitos de estructura de datos, lo que significa que no podían implementar Redis en su sede. Además, la migración a Redis No fue tan fácil como uno podría haber pensado, Redis no cumplía con los requisitos técnicos de la organización. Redis está desarrollado en C++ en Linux. Y no es oficialmente compatible con Windows. Como la aplicación de la organización se creó utilizando .NET 6, la integración de un producto que no es .NET nativo puede causar problemas.

 

Cómo NCache ¿Encaja en su solución?

NCache les proporciona una solución en memoria flexible y escalable para su aplicación de un solo nivel junto con sus funciones avanzadas. Están experimentando notificaciones de cambios de datos más rápidas para procesarlos y trabajar en ellos.

Fue una migración fácil desde Redis a NCache y fue bastante sencillo.

dijo el Analista de soporte de aplicaciones empresariales del equipo.

Cualquier cosa que parezca faltar en su aplicación, NCache proporcionó las soluciones óptimas como solución.

Los cambios no planificados o el mantenimiento planificado no afectarán el rendimiento de la aplicación, ya que utiliza una topología de caché replicada: si un nodo está inactivo, el otro nodo lo compensa. Los requisitos de estructura de datos de la organización fueron cumplidos por NCache Colas muy intuitivas y fáciles de implementar. Desde el SignalR backplane al cargador de caché, al proveedor de fuente de respaldo (lectura) y NCache Cerraduras; la aplicación de seguimiento se beneficia de todas estas potentes funciones de NCache.

Por otro lado, NCache es una solución de almacenamiento en caché distribuida nativa de .NET que se puede implementar en Linux y en Windows. Esto les ayudó con su despliegue, ya que Redis sólo es compatible con Linux. La mayoría de las aplicaciones .NET se ejecutan en Windows y ahora .NET Core Las aplicaciones pueden ejecutarse tanto en Windows como en Linux. Por lo tanto, se ha vuelto esencial garantizar que sus cachés distribuidas también brinden soporte para ambos sistemas operativos. Y NCache como una de las mejores soluciones de almacenamiento en caché, brinda este soporte.

Alachisoft Producto:
NCache

Necesidades del cliente satisfechas:

  • Migración/implementación fácil y directa
  • Mejores estructuras de datos
  • Escalabilidad
  • Viajes reducidos a la base de datos
 

Descripción general e implementación de la arquitectura de la aplicación con NCache

La arquitectura de la aplicación comprende principalmente los siguientes componentes:

  • Interfaz:
    La parte delantera está diseñada utilizando el marco SVELTE JS.
  • Capa lógica:
    La capa lógica interactúa con la base de datos mediante las API Rest. Usa .NET Core 6 API web, tiene centros de notificaciones SignalR y viene con API .NET para SearchService y servicios de colaboración.
  • Parte trasera:
    El back-end se basa en SQL Server como almacén de datos. Las fuentes de datos incluyen SQL Server, ADFS, Sharepoint y Document Management Server. La fuente de respaldo (NCache Read-Through) se implementa en esta capa que utiliza .NET 6 con NCache 5.3 ESP1.

Para ver más de cerca la aplicación, la API web contiene el servicio de acción, el centro de notificaciones junto con SignalR. NCache Actúa como un eje central entre diferentes partes de la aplicación. El usuario inicia sesión mediante ADFS (Servicios de federación de Active Directory), va al front-end y llama a la API web. La API web es responsable de crear esta acción y ponerla en la cola dentro del NCache. El Servicio de Acción realiza múltiples operaciones, como sondear la cola, procesar el objeto tasker, etc.

Si hay un elemento presente dentro del Servicio de Acción, lo procesará. Como parte del procesamiento, el Servicio de Acción también envía las notificaciones a través de un Centro de notificaciones. Este Servicio de acción cambia el estado del objeto de datos "Tasker", en caso de un cambio en el estado de los datos, donde se pueden agregar nuevos datos o se actualizan los datos agregados previamente. Esto ayuda a los usuarios a analizar el procesamiento y envía notificaciones a todos los usuarios interesados ​​afectados por ese cambio. La aplicación también cuenta con un servicio de colaboración para gestionar tareas mediante SharePoint.

Diagrama arquitectónico usando NCache
Figura 1 - Diagrama arquitectónico usando NCache

Actualmente, la aplicación utiliza 2 servidores con equilibrio de carga que alojan el front-end, la capa lógica y NCache. Además, hay 1 servidor de base de datos para respaldar los servidores. Tienen 1 caché general donde almacenan colas que también almacena en caché algunos datos de referencia. También tienen otros 2 cachés para almacenar datos estáticos, es decir, "tareas". Tanto el caché general como el caché estático tienen implementados una fuente de respaldo (lectura) y un cargador.

 

SignalR Backplane

La organización amplía el uso de la aplicación con la SignalR backplane. Cuando varios usuarios utilizan la aplicación web, esperan comentarios sobre el objeto tasker. Los comentarios se les proporcionan a través de un centro de notificaciones que utiliza SignalR. Esto ha eliminado la necesidad de actualizar la página web cada vez para solicitar mensajes nuevos.

Se pueden crear aplicaciones web ASP.NET en tiempo real con SignalR, donde el servidor transmite actualizaciones a todos los usuarios que han iniciado sesión tan pronto como se activa una actualización. Al hacer esto, se reduce el tiempo de respuesta a las solicitudes de actualizaciones de los usuarios. NCache ofrece soporte para SignalR al proporcionar una extensión al proveedor de SignalR. El proveedor tiene registros de todos los servidores web interesados ​​de la aplicación.

 

Estructura de datos en cola para datos consistentes

Han estado utilizando excesivamente la estructura de datos de cola proporcionada por NCache. Las colas se almacenan en la caché general para mantener la información que se procesa en tiempo de ejecución. La API web agrega un nuevo elemento a la cola. Luego, Action Service sondea esa cola y, si se encuentra un nuevo elemento, realiza los procesos necesarios. Toda la cola se almacena en NCache. Cada vez que tenían que buscar un artículo, no tenían que atravesar toda la cola, ya que ese no solo es un proceso lento sino también costoso. NCache utiliza referencias para obtener el elemento requerido que no perjudica el rendimiento.

La estructura de datos de la cola viene con diferentes API como GetQueue, que verifica si un elemento existe o no en el caché con la ayuda del método Contiene. De manera similar, obtener el elemento superior de una cola, copiar una cola de origen completa a la matriz unidimensional, eliminar elementos de la cola, registrar eventos (estructuras de datos y basadas en claves), bloquear y desbloquear las colas para mantener la coherencia de los datos, todo esto son las otras características que NCache ofertas con la estructura de datos de cola.

 

Bloqueo de colas para la integridad de los datos

La organización también incorpora el uso del bloqueo ofrecido por NCache. Por ejemplo, pueden bloquear la cola cada vez que el usuario lee o escribe en ella, digamos durante unos 20 segundos usando Lock API para mantener la integridad de los datos. Si la cola requerida está libre y lista para usarse nuevamente, el usuario la desbloquea usando la API de desbloqueo. Cuando hablamos de actualizaciones simultáneas, NCacheLa función de bloqueo está lista para servir y proporcionar integridad y coherencia de los datos.

Sobre Alachisoft:
Alachisoft proporciona un popular caché distribuido en memoria de alto rendimiento llamado NCache. NCache es un middleware de código abierto que se ejecuta en un entorno de producción y aumenta el rendimiento y la escalabilidad de las aplicaciones web .NET, las aplicaciones de servicio SOA y las aplicaciones generales de servidor de alto tráfico. Desde 2005, NCache tiene un historial comprobado con cientos de clientes en todo el mundo y especialmente en EE. UU., Reino Unido y Europa occidental.

Puede descargar una prueba gratuita de 30 días completamente funcional de NCache en esta página.

Alachisoft
Sede Corporativa
12005 Ford Road, Suite 520
Dallas, TX 75234

US: +1 (214) 764-6933
UK: +44 (207) 993-8327

sales@alachisoft.com
support@alachisoft.com

 

Fuente de respaldo (almacenamiento en caché de lectura directa)

Utilizaron el proveedor de lectura directa implementado en el almacén de caché general y estático de la aplicación para recuperar los datos de la fuente de datos en caso de que no estén presentes en el caché. Esto minimiza los viajes de red adicionales a la base de datos. NCache ofrece un proveedor de lectura directa que permite a los usuarios comunicarse con la fuente de datos. En el almacenamiento en caché de lectura directa, en caso de que se pierda la memoria caché, NCache se comunicará con el proveedor para cargar datos detrás de la llamada de obtención.

El proveedor de lectura directa se configura utilizando el IReadThruProvider para .NET. Si no se puede encontrar un elemento en el caché, los métodos CargarDesdeFuente y Cargar tipo de datos desde fuente Proporciona lógica para cargar el objeto o tipo de datos desde la fuente de datos definida.

 

Cargador de caché para rellenar previamente el caché

NCache proporciona otra característica poderosa, la Cargador de inicio de caché que han estado utilizando en su aplicación de seguimiento. La aplicación completa previamente los datos en el caché al inicio. Esto no sólo ahorra costos de red sino que también hace que los datos estén altamente disponibles. El propósito del Cache Loader es evitar la latencia incluso en la solicitud inicial, pero como el Cache Loader se ejecuta en otro servicio, es técnicamente asíncrono. La aplicación de seguimiento siempre mantiene los datos utilizados con más frecuencia en la memoria caché al iniciarse. Esta característica ha ayudado a mejorar el rendimiento de la aplicación, además de gestionar el rendimiento de las solicitudes.

 

Avanzando con NCache

La organización se beneficia de NCache en numerosas áreas como se explicó anteriormente. Como parte de su crecimiento futuro, planean utilizar NCacheLa función Grupos, junto con sus Notificaciones de eventos y mensajes Pub/Sub, ya que el Servicio de acción tiene que sondear cada vez para buscar actualizaciones. NCache es capaz de gestionar todo esto por ellos sin perder rendimiento.

¿Qué hacer a continuación?

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.