Further RabbitMQ configurations
Further collection of examples using RabbitMQ
All examples assume default values when not applied
Queue based eventing
In this example, a simple RabbitMQ consumer is set up to subscribe directly to events from a queue. This approach is used for point-to-point event delivery, where each event is consumed by a single consumer from the queue.
Queue-based eventing ensures that each message is processed once by a consumer, providing reliable message handling.
Work Queues
In this example, RabbitMQ is used to implement work queues, which distribute time-consuming tasks among multiple consumer workers.
This setup ensures that tasks are processed efficiently by a pool of workers, with each worker receiving a manageable number of tasks from the queue. It also provides fine-grained control over message acknowledgment and task distribution.
Publish / Subscribe
In this example, RabbitMQ is configured to use the publish / subscribe pattern, where multiple consumer processes receive the same message. This is achieved using a fanout exchange, which broadcasts messages to all bound queues without requiring specific routing keys.
Since the fanout
exchange type sends a copy of each message to all queues bound to it, there’s no need to specify routing keys. Every consumer connected to the exchange will receive the same event.
Routing
In this example, RabbitMQ is configured to use direct routing, where each consumer subscribes only to a specific subset of messages based on the routing keys. This allows for more selective message consumption, meaning that the consumer will only receive the events it is interested in, based on its assigned routing keys.
Exchange type The
quotes_exchange
is of typeDIRECT
, which routes messages based on exact matching of routing keys.Routing keys In this case, the consumer subscribes to two specific routing keys:
NASDAQ.IBM
andNASDAQ.MSFT
. This means the consumer will only receive messages related to these two stock quotes.
Topic
In this example, RabbitMQ uses a topic exchange to allow consumers to subscribe to a wider set of events using wildcards.
The topic exchange type enables more flexible routing compared to direct exchanges, allowing the consumer to use patterns with the dot notation to match multiple routing keys.
Exchange type The
quotes_exchange
is of typeTOPIC
, which allows the use of routing key patterns with wildcards (*
and#
).Routing keys The consumer subscribes to routing keys with wildcards to receive all quotes for specific stocks. In this case,
*.IBM
and*.MSFT
will match all events for any market venue related to IBM and MSFT.The
*
wildcard matches exactly one word in the routing key.This allows the consumer to receive market venue quotes for both IBM and MSFT from any market source (e.g., NASDAQ, NYSE).
Last updated