Back to basics
Abbiamo già detto che esiste solo oneway-messaging e che exactly-once delivery è una chimera, per continuare la mia carrellata di buoni motivi per non impelagarsi in un sistema distribuito oggi vorrei introdurvi al magico mondo delle poison queue. Quando un messaggio viene inviato possono succedere le seguenti cose: L’infrastruttura non riesce a consegnarlo alla coda di destinazione Il messaggio arriva alla coda di destinazione malformed Il destinatario riceve il messaggio ma fallisce nel processarlo Come più volte ho ribadito in un sistema basato su messaggi...
Abbiamo già spiegato perché esiste solo one-way messaging, oggi cerchiamo di sfatare un secondo mito: exactly-once delivery. Che altro non è che l’aspettativa che un messaggio sia sempre consegnato una ed una sola volta. È possibile? Si, in un solo scenario: un trasporto transazionale con il supporto per il DTC in combinazione con un processo di gestione del messaggio che è in grado di fare enlistment nella transazione distribuita. Quindi se avete MSMQ con le code transazionali, tutto quello che fate quando processate il messaggio è lavorare ad esempio con...
Prima di addentrarci e scoprire cosa possiamo fare con una coda e ovviamente dei messaggi, cerchiamo di dare una risposta definitiva al perché “two-way messaging” non abbia senso, e quindi esista solo “one-way messaging”. Quando si parla di code abbiamo due macro tipologie di architetture: store & forward broker Un ottimo esempio di store & forward, e pure l’unico che a quest’ora di mattina mi viene in mente, è MSMQ. Per mandare un messaggio da A a B: A manda un messaggio alla sua coda...