Nelle moderne applicazioni distribuite, la comunicazione efficiente tra i componenti è essenziale per garantire scalabilità e reattività. Pubblica/Sottoscrivi Il modello di messaggistica (Pub/Sub) fornisce un metodo robusto per disaccoppiare i produttori e i consumatori di messaggi, consentendo interazioni asincrone e scalabili. Questo blog esplora i fondamenti della messaggistica Pub/Sub nelle applicazioni .NET, i suoi vantaggi e dimostra come implementarla utilizzando NCache come esempio.
Informazioni sulla messaggistica Pub/Sub
Il modello Pub/Sub è costituito da diversi componenti chiave:
- Editori: Entità responsabili della generazione e dell'invio di messaggi a un argomento senza conoscere l'abbonato.
- Iscritti: Consumatori che registrano il loro interesse nei messaggi riguardanti un argomento specifico e li ricevono in modo asincrono.
- Argomento: Un canale di comunicazione attraverso cui vengono instradati i messaggi. Publisher e subscriber usano argomenti per inviare e ricevere messaggi.
- Messaggio: Il unità di comunicazione contenente l'oggetto dati effettivo inviato dagli editori e consegnato agli abbonati.
- Broker (NCache in questo caso): Gestisce distribuzione dei messaggi, garantendo efficienza e affidabilità consegna a tutte le entità sottoscritte.
- efficiente: Garantisce che i messaggi raggiungano gli abbonati appropriati in base a abbonamenti ad argomenti.
Tale separazione tra editori e abbonati consente di realizzare un sistema di messaggistica scalabile e ad alte prestazioni, ideale per applicazioni in tempo reale e architetture distribuite.
Vantaggi della NCache Messaggistica Pub/Sub
I vantaggi della messaggistica Pub/Sub con NCache sono come sotto:
- Veloce in memoria con persistenza: Combina la velocità della messaggistica in memoria con la persistenza per garantire affidabilità, se necessario.
- Scalabilità: Supporta facilmente più editori e abbonati senza dipendenze dirette.
- Il disaccoppiamento: Consente agli editori e agli abbonati di operare in modo indipendente, promuovendo un'architettura modulare.
- Comunicazione asincrona: Facilita inoltre le interazioni non bloccanti, migliorando la reattività del sistema.
- Flessibilità: Consente di aggiungere o rimuovere abbonati in modo dinamico senza influire sugli editori.
- 100% nativo .NET: È completamente ottimizzato per le applicazioni .NET, garantendo integrazione e prestazioni impeccabili.

Figura: Messaggistica Pub/Sub in NCache
Implementazione di Pub/Sub in .NET con NCache
NCache supporta Pub / Sub modello di messaggistica, consentendo una comunicazione efficiente nelle applicazioni distribuite. Segui i passaggi sottostanti per implementare senza problemi Pub/Sub nelle tue applicazioni .NET con NCache.
Impostare NCache
- Installazione NCache Pacchetto NuGet tramite PowerShell:
Apri Console di gestione dei pacchetti in Visual Studio ed eseguire il seguente comando (in base a quello scelto) NCache Edizione, ovvero Enterprise, Professional o OpenSource):
|
1 |
Install-Package Alachisoft.NCache.SDK -Version x.x.x |
- Configurazione NCache nella tua applicazione:
Eseguire il seguente codice per configurare NCache nella tua applicazione.
|
1 2 3 4 5 6 7 8 |
// Initialize cache ICache cache = CacheManager.GetCache("pubsubCache"); // Enable logging and exception handling CacheManager.SetLogging(true); CacheManager.SetExceptions(true); Console.WriteLine("NCache initialized successfully."); |
Creare un argomento
Dopo la configurazione NCache nella tua applicazione, devi creare un argomento attraverso i quali vengono pubblicati e sottoscritti i messaggi, come segue:
|
1 2 3 4 5 6 7 8 |
// Get cache instance ICache cache = CacheManager.GetCache("pubsubCache"); // Get the messaging service from cache IMessagingService messagingService = cache.MessagingService; // Create a topic named "Orders" ITopic ordersTopic = messagingService.CreateTopic("Orders"); |
Pubblicazione dei messaggi
Una volta creato un argomento, l'editore può pubblicare messaggi a quell'argomento, indipendentemente dal suo abbonato.
|
1 2 3 4 5 6 |
// Create a message payload string orderDetails = "OrderID: 12345, Product: Laptop, Quantity: 1"; Message message = new Message(orderDetails); // Publish the message to the "Orders" topic ordersTopic.Publish(message); |
Iscrizione ai messaggi
Poi gli abbonati abbonati all'argomento di loro interesse.
|
1 2 3 4 5 6 7 8 9 10 |
// Define the message received callback void OnMessageReceived(object sender, MessageEventArgs args) { string receivedOrderDetails = args.Message.Payload as string; Console.WriteLine($"Received: {receivedOrderDetails}"); } // Create a subscription to the "Orders" topic ITopicSubscription subscription = ordersTopic.CreateSubscription(OnMessageReceived); |
Funzioni avanzate
NCacheL'implementazione Pub/Sub offre funzionalità avanzate come:
- Abbonamenti durevoli: In questo tipo di sottoscrizione, un abbonato riceve tutti i messaggi, anche in caso di disconnessione.
- Scadenza messaggio: L'editore può impostare scadenza per i messaggi per evitare il consumo di dati obsoleti.
- Abbonamento basato su pattern: Puoi iscriverti a singoli/multipli argomenti che rientrano nel modello fornito utilizzando abbonamento basato su pattern where NCache supporta più caratteri jolly.
Per informazioni dettagliate, fare riferimento al NCache Documentazione Pub/Sub.
Conclusione
Come discusso, l'implementazione della messaggistica Pub/Sub nelle applicazioni .NET migliora la scalabilità, separa i componenti e facilita una comunicazione asincrona efficiente. NCache fornisce una piattaforma solida per implementare questo modello, garantendo elevate prestazioni e affidabilità in ambienti distribuiti.
Sfruttando la messaggistica Pub/Sub con NCache, gli sviluppatori possono creare applicazioni .NET reattive e scalabili che gestiscono in modo efficiente i dati in tempo reale.






