Una piattaforma di vendita al dettaglio elabora flussi di lavoro d'ordine a più fasi. Ogni ordine genera una conversazione di messaggi correlati (ordine creato, pagamento autorizzato, articoli riservati) che devono essere elaborati in ordine per OrderId tra più sottoscrittori. Quando un worker elabora un messaggio 'ordine creato', deve inviare atomicamente due comandi ai servizi a valle o eseguire il rollback se l'elaborazione fallisce. I messaggi "velenosi" devono essere isolati senza perderli. Quale design di messaggistica dovresti raccomandare?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Un topic di Azure Service Bus con sessioni abilitate (sessionId=OrderId); creare sottoscrizioni per ogni servizio a valle; utilizzare le transazioni di Service Bus per completare il messaggio in entrata e inviare i due messaggi in uscita nella stessa transazione; fare affidamento sulla sottocoda dead-letter sulle sottoscrizioni per i messaggi "velenosi"..
Perché questa è la risposta
Questa opzione è corretta perché Azure Service Bus con sessioni abilitate (sessionId=OrderId) garantisce l'elaborazione ordinata dei messaggi per un dato OrderId, essenziale per i flussi di lavoro multi-fase. Le transazioni di Service Bus permettono di completare atomicamente il messaggio in entrata e inviare i due comandi a valle, garantendo coerenza o rollback in caso di fallimento. Le sottoscrizioni per ogni servizio a valle consentono il fan-out del messaggio. Infine, la sottocoda dead-letter integrata gestisce automaticamente i messaggi "velenosi" senza perderli. Le altre opzioni sono meno adatte: Una coda di Azure Service Bus senza sessioni non garantisce l'ordinamento per OrderId. Il rilevamento dei duplicati non è una soluzione per l'ordinamento. Una coda di Azure Storage non supporta transazioni atomiche per più operazioni e non offre nativamente l'ordinamento per sessione. Azure Event Grid non garantisce l'ordinamento degli eventi e la consegna è at-most-once, non adatta a flussi di lavoro che richiedono coerenza. Un topic di Azure Service Bus senza sessioni non garantisce l'ordinamento per OrderId. Disabilitare il dead-lettering è un rischio per la perdita di messaggi.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta