Argomento di studio - NCache aumentare le prestazioni di un'applicazione di gestione delle attività

Immagine intestazione

Dopo una facile migrazione a NCache, ha iniziato a comportarsi come il collante che tiene insieme la nostra applicazione. E le varie funzionalità che offre sono state un vero vantaggio, soprattutto le code, che abbiamo sfruttato eccessivamente.

Analista del supporto di applicazioni aziendali
 

Paese o Regione:
Europa

Settore:
Difesa militare

Profilo Aziendale:
Si tratta di un dipartimento di difesa europeo che lavora per creare un collegamento tra diverse nazioni, consentendo loro di consultarsi e collaborare su progetti di sicurezza e coordinando le attività di gestione delle crisi internazionali.

NCache consente a questa organizzazione di mantenere un'elevata disponibilità e di accelerare le prestazioni della propria applicazione di gestione delle attività.

Scarica PDF
 

Introduzione

Tali organizzazioni richiedono elevata disponibilità, coerenza dei dati e facile gestione delle attività. Questa organizzazione in particolare ha progettato un'applicazione di tracciamento ad uso dei propri dipendenti per gestire informazioni e attività tra diversi dipartimenti. I dipendenti accedono all'applicazione e inseriscono le loro attività quotidiane. Ogni dipartimento competente può supervisionare i dipendenti e verificare lo stato delle loro attività. L'azienda precedentemente utilizzata Redis per i loro processi di sviluppo, ma hanno dovuto affrontare limitazioni nella distribuzione sui propri server. Inoltre, in qualità di principale contributore alla pace sulla scena internazionale, volevano migliorare la loro applicazione di monitoraggio per essere informati di eventuali cambiamenti avvenuti in tempo reale.

 

Punti critici dell'applicazione

Richiedono un buon meccanismo di memorizzazione nella cache. Hanno valutato Redis. Lo hanno scoperto in una fase iniziale Redis non soddisfaceva i requisiti della struttura dei dati, il che significa che non potevano eseguire la distribuzione Redis nel loro quartier generale. Inoltre, la migrazione a Redis non è stato così facile come si poteva pensare, Redis non soddisfaceva i requisiti tecnici dell'organizzazione. Redis è sviluppato in C++ su Linux. Inoltre, non è ufficialmente supportato su Windows. Poiché l'applicazione dell'organizzazione è stata creata utilizzando .NET 6, l'integrazione di un prodotto che non è .NET nativo può causare problemi.

 

Come NCache Si adatta alla loro soluzione?

NCache fornisce loro una soluzione in memoria flessibile e scalabile per le loro applicazioni a livello singolo insieme alle sue funzionalità avanzate. Stanno riscontrando notifiche di modifica dei dati più veloci per elaborarle e lavorarci sopra.

È stata una migrazione facile da Redis a NCache ed è stato piuttosto semplice.

ha detto che il Analista del supporto di applicazioni aziendali della squadra.

Qualunque sia la loro applicazione sembra mancare, NCache fornito le soluzioni ottimali come soluzione.

Le modifiche non pianificate o la manutenzione pianificata non influiranno sulle prestazioni dell'applicazione poiché utilizza la topologia della cache replicata: se un nodo è inattivo, l'altro nodo lo compensa. I requisiti della struttura dei dati dell'organizzazione sono stati soddisfatti da NCache Code molto intuitive e facili da implementare. Dal SignalR backplane al caricatore della cache, al provider dell'origine di supporto (Read-Through) e NCache serrature; l'applicazione di monitoraggio beneficia di tutte queste potenti funzionalità di NCache.

Inoltre, NCache è una soluzione di caching distribuita nativa .NET che può essere distribuita su Linux e Windows. Questo li ha aiutati con il loro dispiegamento, come Redis supporta solo Linux. La maggior parte delle applicazioni .NET vengono eseguite su Windows e ora .NET Core le applicazioni possono essere eseguite sia su Windows che su Linux. Pertanto, è diventato essenziale garantire che le loro cache distribuite forniscano anche supporto per entrambi questi sistemi operativi. E NCache essendo una delle migliori soluzioni di memorizzazione nella cache, fornisce questo supporto.

Alachisoft Prodotti:
NCache

Esigenze del cliente soddisfatte:

  • Migrazione/distribuzione facile e diretta
  • Migliori strutture dati
  • Scalabilità
  • Viaggi nel database ridotti
 

Panoramica dell'architettura dell'applicazione e distribuzione con NCache

L’architettura dell’applicazione è composta principalmente dai seguenti componenti:

  • Fine frontale:
    Il front-end è stato progettato utilizzando il frame SVELTE JS.
  • Livello logico:
    Il livello logico interagisce con il database utilizzando le API Rest. Utilizza .NET Core 6 API Web, dispone di hub di notifica SignalR e viene fornito con API .NET per SearchService e servizi di collaborazione.
  • Backend:
    Il back-end è basato su SQL Server come archivio dati. Le origini dati includono SQL Server, ADFS, Sharepoint e Document Management Server. La fonte di supporto (NCache Read-Through) è implementato in questo livello che utilizza .NET 6 con NCache 5.3SP1.

Per uno sguardo più attento all'applicazione, l'API Web contiene il servizio Action, Notification Hub insieme a SignalR. NCache funge da hub centrale tra le diverse parti dell'applicazione. L'utente accede utilizzando ADFS (Active Directory Federation Services), va al front-end e chiama l'API Web. L'API Web è responsabile della creazione di questa azione e della sua immissione in coda all'interno del file NCache. Il servizio Action esegue più operazioni come il polling della coda, l'elaborazione dell'oggetto tasker, ecc.

Se è presente un elemento all'interno di Action Service, lo elaborerà. Nell'ambito dell'elaborazione, Action Service invia anche le notifiche tramite un Notification Hub. Questo servizio di azione modifica lo stato dell'oggetto dati "Tasker" - in caso di modifica dello stato dei dati in cui possono essere aggiunti nuovi dati o i dati aggiunti in precedenza vengono aggiornati. Ciò aiuta gli utenti ad analizzare l'elaborazione e invia notifiche a tutti gli utenti interessati interessati da tale modifica. L'applicazione dispone anche di un servizio di collaborazione per gestire le attività utilizzando SharePoint.

Diagramma architettonico utilizzando NCache
Figura 1 - Diagramma architettonico utilizzando NCache

Attualmente, l'applicazione utilizza 2 server con carico bilanciato che ospitano il front-end, il livello logico e NCache. Inoltre, è presente 1 server database per supportare i server. Hanno 1 cache generale in cui memorizzano le code che memorizza nella cache anche alcuni dati di riferimento. Hanno anche altre 2 cache per la memorizzazione di dati statici, ovvero "attività". La cache generale e le cache statiche hanno entrambe un Backing Source (Read-Through) e un Loader implementati.

 

SignalR Backplane

L'organizzazione estende l'utilizzo dell'applicazione con SignalR backplane. Quando più utenti utilizzano l'app Web, attendono il feedback sull'oggetto tasker. Il feedback viene fornito tramite un hub di notifica che usa SignalR. Ciò ha eliminato la necessità di aggiornare ogni volta la pagina Web per richiedere nuovi messaggi.

È possibile creare applicazioni Web ASP.NET in tempo reale con SignalR, in cui il server trasmette gli aggiornamenti a tutti gli utenti che hanno effettuato l'accesso non appena viene attivato un aggiornamento. In questo modo si riduce il tempo di risposta alle richieste di aggiornamenti degli utenti. NCache offre supporto per SignalR fornendo un'estensione al provider SignalR. Il provider ha registrazioni di tutti i server web interessati dall'applicazione.

 

Struttura dei dati della coda per dati coerenti

Hanno utilizzato eccessivamente la struttura dei dati della coda fornita da NCache. Le code vengono archiviate nella cache generale per mantenere le informazioni elaborate in fase di runtime. L'API Web aggiunge un nuovo elemento alla coda. Quindi Action Service esegue il polling della coda e, se viene trovato un nuovo elemento, esegue i processi richiesti. L'intera coda è archiviata in NCache. Ogni volta che devono prendere un oggetto, non devono attraversare l'intera coda poiché questo non è solo un processo lento ma anche costoso. NCache utilizza i riferimenti per ottenere l'elemento richiesto che non influisce sulle prestazioni.

La struttura dati Queue viene fornita con diverse API come GetQueue, che controlla se un elemento esiste o meno nella cache con l'aiuto del metodo Contiene. Allo stesso modo, ottenere l'elemento più in alto da una coda, copiare un'intera coda di origine nell'array unidimensionale, rimuovere elementi dalla coda, registrare eventi (strutture basate su chiavi e dati), bloccare e sbloccare le code per la coerenza dei dati: tutte queste sono le altre caratteristiche che NCache offerte con la struttura dati Queue.

 

Bloccare le code per l'integrità dei dati

L'organizzazione introduce anche l'uso della serratura offerta da NCache. Ad esempio, potrebbero bloccare la coda ogni volta che l'utente la legge o la scrive, diciamo per circa 20 secondi utilizzando l'API Lock in modo da mantenere l'integrità dei dati. Se la coda richiesta è libera e pronta per essere nuovamente utilizzata, l'utente la sblocca utilizzando l'API Unlock. Quando parliamo di aggiornamenti simultanei, NCacheLa funzione di blocco di è pronta per servire e garantire l'integrità e la coerenza dei dati.

Chi siamo Alachisoft:
Alachisoft fornisce una popolare cache distribuita in memoria ad alte prestazioni chiamata NCache. NCache è un middleware Open Source che viene eseguito nell'ambiente di produzione e migliora le prestazioni e la scalabilità delle app Web .NET, delle app di servizio SOA e delle app generali del server ad alto traffico. Dal 2005, NCache ha una comprovata esperienza con centinaia di clienti in tutto il mondo e specialmente negli Stati Uniti, nel Regno Unito e nell'Europa occidentale.

Puoi scaricare una versione di prova gratuita di 30 giorni completamente funzionante di NCache da qui.

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

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

sales@alachisoft.com
support@alachisoft.com

 

Sorgente di supporto (caching read-through)

Hanno utilizzato il provider Read-Through implementato nell'archivio generale delle cache statiche dell'applicazione, per recuperare i dati dall'origine dati nel caso in cui non fossero presenti nella cache. Ciò riduce al minimo i viaggi di rete aggiuntivi al database. NCache offre un provider Read-Through che consente agli utenti di comunicare con l'origine dati. Nella cache Read-Through, in caso di cache miss, NCache contatterà il provider per caricare i dati dietro la chiamata di ricezione.

Il provider Read-Through viene configurato utilizzando il file IReadThruProvider per .NET. Se un elemento non può essere trovato nella cache, i metodi Carica da origine ed Caricatipodatidaorigine fornire la logica per caricare l'oggetto o il tipo di dati dall'origine dati definita.

 

Caricatore di cache per prepopolare la cache

NCache fornisce un'altra potente funzionalità, il Caricatore di avvio della cache che hanno utilizzato nella loro applicazione di tracciamento. L'applicazione precompila i dati nella cache all'avvio. Ciò non solo consente di risparmiare sui costi di rete, ma rende anche i dati altamente disponibili. Lo scopo del Cache Loader è evitare la latenza anche sulla richiesta iniziale, ma poiché il Cache Loader viene eseguito su un altro servizio, è tecnicamente asincrono. L'applicazione di tracciamento mantiene sempre i dati utilizzati più frequentemente nella cache all'avvio. Questa funzionalità ha contribuito a migliorare le prestazioni dell'applicazione, oltre a gestire la velocità effettiva delle richieste.

 

Andare avanti con NCache

L'organizzazione ne trae vantaggio NCache in numerosi ambiti, come spiegato sopra. Come parte della loro crescita futura, stanno pianificando di utilizzare NCache, insieme alle notifiche degli eventi e alla messaggistica Pub/Sub, poiché Action Service deve eseguire ogni volta un polling per verificare la presenza di aggiornamenti. NCache è in grado di gestire tutto questo per loro senza perdere prestazioni.

Cosa fare dopo?

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.