[[https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html|{{ :informatique:informatique:rabbitmq-beginners-updated.png?600}}]] ====== RabbitMQ ====== https://www.rabbitmq.com/ * [[https://cyrille.giquello.fr/informatique/php/laravel#queue_and_mq|Laravel Queue and MQ]] * [[https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html|RabbitMQ for beginners - What is RabbitMQ]] by Lovisa Johansson * Producer: l'application qui envoie des messages * Consumer: l'application qui reçois des messages * Queue: un tampon qui stocke des messages * Message: une information envoyée par un ''Producer'' vers un ''Consumer'' via RabbitMQ * Connection: une connexion TCP/IP entre une application et RabbitMQ * Channel: une connexion virtuelle au sein d'une connexion TCP/IP. Toute publication ou consommation de messages se fait au sein d'un ''Channel'' * Exchange: reçoit les messages des ''Producer'' et les dépose dans une ''Queue'' en fonction des règles définies par le type d' ''Exchange''. Pour recevoir des messages une ''Queue'' doit être associées à au moins un ''Exchange'' * Binding: une association entre une ''Queue'' et un ''Exchange'' * Routing key: The routing key is a key that the exchange looks at to decide how to route the message to queues. The routing key is like an address for the message. * AMQP: AMQP (Advanced Message Queuing Protocol) is the protocol used by RabbitMQ for messaging. * Users: It is possible to connect to RabbitMQ with a given username and password. Every user can be assigned permissions such as rights to read, write and configure privileges within the instance. Users can also be assigned permissions to specific virtual hosts. * Vhost, virtual host: A Virtual host provides a way to segregate applications using the same RabbitMQ instance. Different users can have different access privileges to different vhost and queues and exchanges can be created so they only exist in one vhost. ===== Management ===== Official doc: [[https://www.rabbitmq.com/management.html|Management Plugin]] Client UI * [[https://github.com/rabbitmq/rabbitmq-management|rabbitmq/rabbitmq-management]] RabbitMQ Management UI and HTTP API