liveBook · Manning

AMQP

As explained in Quarkus in Action

AMQP is a messaging protocol standard for exchanging messages between producers, brokers, and consumers.

AMQP (Advanced Message Queuing Protocol) standardizes message exchange between producers, brokers, and consumers. RabbitMQ uses AMQP 0-9-1 by default, sending and consuming messages through queues. section 9.7

Protocol versions matter: AMQP 0-9-1 differs substantially from AMQP 1.0. RabbitMQ can use AMQP 1.0 through a separate plugin, while SmallRye Reactive Messaging provides a connector for AMQP 1.0. section 9.7

Use AMQP in a Quarkus reactive-messaging application by:

  • Adding the quarkus-messaging-rabbitmq extension to connect through the SmallRye RabbitMQ connector. section 9.7
  • Mapping an outgoing reactive channel, such as invoices, to a RabbitMQ exchange bound to a queue. section 9.7

Reservation and Billing services

A Reservation service emits an Invoice through an invoices channel. A BillingService consumes the message through invoices-rabbitmq, maps the received JsonObject to an Invoice, and processes it asynchronously through RabbitMQ. section 9.9

How Quarkus in Action covers it

How deep it goes
Distinguishes AMQP 0-9-1 from AMQP 1.0 and demonstrates connector, channel, queue, exchange, and consumer configuration.
Examples
Uses invoice messages exchanged between Reservation and Billing services through RabbitMQ queues and exchanges.
What it assumes
Assumes basic Quarkus and reactive-messaging knowledge while explaining RabbitMQ protocol and connector differences.
What you can do after
Builds asynchronous Quarkus service communication by adding a connector and configuring reactive incoming and outgoing channels.
How it connects
Links AMQP with RabbitMQ, Quarkus, SmallRye Reactive Messaging, MicroProfile Reactive Messaging, and asynchronous messaging.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Quarkus in Action. The section links point to the parts of the book it draws on.