web-dev-qa-db-fra.com

Qu'est-ce que le "mode de livraison" dans AMQP?

Je comprends que 2 options sont disponibles:

  • "Non persistante"
  • "Persistant"

Mais qu'est-ce que cela signifie réellement?

"Non persistant" comme dans: la structure AMQP tentera de délivrer le message s'il n'y a pas de consommateurs, le message sera abandonné?

"Persistant" comme dans: AMQP réessayera le message jusqu'à ce qu'un consommateur l'accepte ??

49
jldupont

Les messages marqués comme "persistants" qui sont livrés à des files d'attente "durables" seront enregistrés sur le disque. Les files d'attente durables sont récupérées en cas de panne, ainsi que tous les messages persistants qu'elles ont stockés avant la panne.

39
alexis

delivery_mode dans AMQP détermine si le message sera stocké sur le disque après le redémarrage du courtier. Vous pouvez marquer les messages comme persistants - en définissant delivery_mode property = 2 lorsque vous publiez un message par exemple dans PHP (extension PECL AMQP):

$exchange->publish($text, $routingKey, null, array('delivery_mode' => 2));

Vous devrez également déclarer la file d'attente comme durable (ou elle sera supprimée après l'arrêt du courtier)

$queue->setFlags(AMQP_DURABLE);
15
Grzegorz Motyl