Monday, January 24, 2022

rabbitmq

 Quelques fondamentaux.

testés dans tests/rabbitmq

et une instance sur cloud amqp

la base : la queue

les producteurs  : creent les messages

les consommateurs  : les consomment (lisent et suppriment)

- une connexion est établie sur un channel

- le producteur publie dans une file

le message peut être routé vers une autre file

pour ca on crée un "exchange

dans l'exchange (sur le manager amqp) on indique que les messages sont routés vers une autre file par un binding et une routing key

ex : 2 files, header et detail

on veut que les messages de header soient publiés sur header et detail

ceux de détail sur détail uniquement.

on crée sur cloud amqp (faisable aussi en python avec pika)

- un exchange : contenu

- on cree un binding entre contenu et header avec comme routing key header

- on cree un binding entre contenu et detail avec comme routing key detail

- on cree un 2e binding entre contenu et detail avec comme routing key header

coté python 

producer : publie les  messages 

- sur exchange=contenu , routing key=detail pour les détails

- sur exchange=contenu , routing key=headers pour les headers

consommateur 1 : consomme la queue détail et recoit les messages header et détail

consommateur 2 : consomme la queue header et recoit les messages header uniquement.

-----

autre moyen 

utiliser les topic_exchange, encore plus puissants et basés sur les patterns

mais (?) semble ne pas persister les messages. ie si le consumer est lancé après il ne voit que les nouveaux pas les anciens ce qui est casse couille.

A creuser. 

https://stackoverflow.com/questions/6148381/rabbitmq-persistent-message-with-topic-exchange

No comments:

Post a Comment

Ma journée du 01 Décembre 2025

En ce premier jour de décembre, l'heure est venue, De conter une histoire, par les dés soutenue. Quinze dés ont roulé, offrant leur dest...