2015-01-23 16 views
5

Suppongo che il compromesso sull'utilizzo di code e argomenti partizionati sia che l'ordine dei messaggi non sia più garantito.Come si supporta l'ordinamento dei messaggi FIFO con code/argomenti partizionati di Azure Service Bus?

Poiché i messaggi sono inviati in modo predefinito round-robin a ciascuno dei frammenti/partizioni, ciò significherebbe che l'ordine dei messaggi non è più garantito. Qualcuno può confermare se questo è il caso?

Come si può garantire l'ordine dei messaggi quando si ricevono scambi da una coda partizionata.

È l'unico modo per supportare l'ordinamento dei messaggi FIFO con code/argomenti partizionati, per utilizzare le sessioni? Suppongo che tutti i messaggi per la stessa chiave di sessione/partizione vengano consegnati almeno FIFO?

+0

Hai mai capito questo? – dreza

+0

Temo di no –

+0

http://stackoverflow.com/questions/7430036/how-to-gurantee-azure-queue-fifo –

risposta

5

Ho trovato questo documento in un post sul blog.

Spero che aiuti!

Partitioned Service Bus Queues and Topics

SessionId. Se un messaggio ha la proprietà SessionId impostata, Service Bus utilizza la proprietà SessionId come chiave di partizione. In questo modo, tutti i messaggi che appartengono alla stessa sessione vengono assegnati allo stesso frammento e gestiti dallo stesso broker di messaggi. Ciò consente al bus di servizio di garantire l'ordine dei messaggi e la coerenza degli stati di sessione.

0

Solo perché non si sta utilizzando una coda partizionata o un argomento non significa che si otterrà FIFO. Se hai più di un lettore o fai async allora no, non otterrai FIFO UNLESS se usi Sessioni come indicato sopra. Si prega di utilizzare le sessioni.

Problemi correlati