2014-07-25 12 views

risposta

16

Non ci sono argomenti x-message-ttl impostati di default dal lato broker, quindi in pratica è possibile interpretare il valore predefinito come infinito.

se si pubblica messaggio senza TTL fare la fila senza set TTL (yupp, ci sono per-messaggio e per coda argomenti TTL, vedi nota sotto):

  • se il messaggio pubblicato come persistente e coda dichiarato il messaggio persistente rimarrà in coda fino a quando non verrà consumato;

  • se il messaggio non è stato pubblicato come persistente o la coda non è stata dichiarata come persistente, quindi il messaggio rimarrà in coda fino a quando non verrà consumato o fino al riavvio del broker.

nota TTL:

Quando entrambi mediatore per-messaggio e per coda set TTL utilizzare la valle minimo. Ad esempio, se per messaggio ttl è 10000 (10 sec) e per coda ttl è 20000 (20 sec), verrà applicato il messaggio per ttl.

Per-messaggio nota TTL:

messaggi con TTL scaduto resteranno in coda fino a quando non ha raggiunto la testa della coda. Non preoccuparti, non saranno inviati al consumatore, ma prenderanno alcune risorse fino a quando non raggiungeranno la testa. In questo modo funzionano le code RabbitMQ (si attaccano all'idea FIFO, che a volte può compromettere la stretta compatibilità con il protocollo AMQP). Vedi Caveats section in Time-To-Live Extensions per ulteriori informazioni.

+2

I messaggi rimangono in coda non finché non "raggiungono la coda" ma fino a quando non vengono consegnati a un consumatore e riconosciuti o rifiutati (senza ri-accodamento). Con la modalità di riconoscimento automatico, significa "non appena vengono inviati". Le code AMQP 0-9-1 sono FIFO ma con il re-accodamento non è chiaro come dovrebbe funzionare. RabbitMQ tenta di preservare l'ordine originale dei messaggi. –

+0

Quando TTL per messaggio scade, quel messaggio non verrà rimosso dalla coda (utilizza ancora risorse come memoria o disco) finché non raggiungerà la coda. Vedi rabbitmq.com/ttl.html#per-message-ttl-caveats per i dettagli. E con il re-accodamento è anche molto chiaro, i messaggi non vengono rimossi dalla coda fino a quando non vengono acchiati (quando l'auto-ack usato li ha ack automaticamente dal lato broker, indipendentemente dal fatto che siano effettivamente consumati dal client). – pinepain

Problemi correlati