Introduzione

Completato

Si supponga di lavorare per una grande organizzazione di notizie che segnala gli avvisi delle ultime notizie. L'azienda impiega una rete mondiale di giornalisti che inviano costantemente aggiornamenti tramite un portale Web e un'app per dispositivi mobili. Un servizio Web di livello intermedio accetta gli aggiornamenti e li pubblica online tramite diversi canali.

Tuttavia, viene segnalato un problema grave. Il sistema non visualizza avvisi quando si verificano eventi significativi a livello globale. Questo problema è enorme per l'azienda perché è "scooped" dalla concorrenza! In qualità di sviluppatore principale dell'azienda, si è scelto di identificare e risolvere il problema.

Il livello intermedio fornisce capacità più che sufficiente per la gestione di carichi normali. Tuttavia un esame dei log dei server rivela che il sistema ha registrato un overload quando più giornalisti hanno provato a caricare contemporaneamente articoli di rilievo. Alcuni autori hanno segnalato che il portale si bloccava e altri hanno detto che i loro articoli sono andati perduti. È stata rilevata una correlazione diretta tra i problemi segnalati e il picco della domanda nei server di livello intermedio.

Ovviamente è necessario un approccio per la gestione di questi picchi imprevisti. Non si vuole aggiungere altre istanze del sito Web e del servizio Web di livello intermedio, perché sono soluzioni costose e ridondanti in condizioni normali. È possibile creare istanze in modo dinamico, ma questa procedura richiede tempo e si potrebbe avere il problema di attendere che i nuovi server vengano online.

Il problema può essere risolto usando l'archivio code di Azure. Una coda di archiviazione è un buffer di messaggi ad alte prestazioni che può fare da broker tra i componenti front end ("producer") e il livello intermedio ("consumer").

Nella soluzione i componenti front-end inseriscono un messaggio per ogni nuovo avviso in una coda. Quindi il livello intermedio recupera i messaggi dalla coda uno alla volta per l'elaborazione. A volte di elevata domanda, la coda potrebbe aumentare di lunghezza, ma non vengono perse storie e l'applicazione rimane reattiva. Quando la richiesta torna a livelli normali, il servizio Web recupera ed elabora il backlog della coda.

Le informazioni seguenti illustrano come usare l'Archiviazione code di Azure per gestire i picchi di domanda e migliorare la resilienza delle applicazioni distribuite.

Obiettivi di apprendimento

  • Creare un account di Archiviazione di Azure che supporta le code.
  • Creare una coda usando C# e la libreria client di Archiviazione di Azure per .NET.
  • Aggiungere, recuperare e rimuovere messaggi da una coda usando C# e la libreria client di Archiviazione di Azure per .NET.