
Begin with an introduction to rabbitmq and messaging concepts, cover installing rabbitmq, basics and patterns, and prepare applications that publish or read messages from rabbitmq.
Explore integration patterns for system communication, including file-based, shared database, direct connection, and asynchronous messaging with a message broker and queues.
Explore how a messaging system decouples publishers and consumers, enabling asynchronous communication with queued json messages and horizontal scaling. Use cases include updating product search index and sending emails asynchronously.
Discover how RabbitMQ, an open-source Erlang-based message broker, receives messages from producers and routes them to multiple consumers, with extensible plugins and support for AMQP, STOMP, and MQTT.
Install the Erlang virtual machine, then RabbitMQ on Windows, open ports 5672 and 15,672, enable the management plugin, restart the service, and test the web interface at localhost 15,672.
Pull the official rabbitmq three-dash-management image from Docker Hub, run a container with port mappings, and access the web management interface using guest/guest.
Explore the RabbitMQ management web interface to monitor and manage the service. Navigate overview, connections, channels, exchanges, queues, and admin settings with default guest/guest credentials on port 15,672.
Explore the core elements of a messaging system, including messages with routing info and payload, producers, consumers, brokers, queues, exchanges, bindings, and channels.
Explore the attributes of messages, queues, and exchanges in RabbitMQ, including routing keys, headers, payloads, expression (lifetime), durable and auto-delete settings, priorities, IDs, and bindings.
Exchanges route messages from producers to bound queues, with four types: fanout, direct, topic, and headers, and the default direct exchange automatically binds every new queue.
Learn how the fanout exchange delivers every message to all bound queues, ignoring routing information and filtering; producers send messages to the exchange, which routes to all bound queues.
Create a fanout exchange and queues, bind them, publish messages to the fanout exchange, and consume messages from the queues using the RabbitMQ management web interface.
Demonstrates using the C# RabbitMQ client to declare a fanout exchange, bind queues, publish messages, and clean up by deleting queues and the exchange.
Learn to build a fanout consumer that connects to the RabbitMQ service, subscribes to a queue, and processes messages with basic consumer, auto-acknowledge, and explicit acknowledgments or rejections.
Discover how a direct exchange routes messages to queues by an exact routing key, as shown with info, warning, and error queues where only the matching info queue receives message.
Explore direct exchange routing in RabbitMQ by creating a direct exchange named x dot direct, binding queues for errors, info, and warnings, and publishing test messages to verify routing.
Study topic exchange routing keys, where patterns with wildcards route messages to queues, and routing keys may include multiple words separated by dots, with asterisk and zero-or-more wildcards shaping matches.
Explore topic exchanges in RabbitMQ, using routing keys and binding key patterns to route messages to queues. Create an exchange, bind queues with patterns, publish messages, and verify routing results.
Demonstrate topic exchange routing in RabbitMQ by declaring a topic exchange, binding queues with key patterns, and publishing messages to route via image.* and image.# patterns.
Explore the headers exchange, which routes messages by headers rather than routing keys. Learn how match all or match any logic in queue bindings determines which queues receive messages.
Using management web interface, demonstrate a headers exchange named x dot headers by binding two queues to header keys job and format, using any and all criteria to route messages.
Demonstrates creating a RabbitMQ headers exchange, binding two queues with all and any header criteria, and publishing messages with headers to route without routing keys.
The default exchange in RabbitMQ is automatically created, cannot be deleted, and is direct; it routes messages to queues named as the routing key when no exchange name is specified.
Demonstrates how the default exchange routes messages to queues using queue names as routing keys in a direct exchange, with queues created and messages published via the management web interface.
Create two direct exchanges and two queues, binding Q1 to exchange one and Q2 to exchange two with routing keys K1 and K2. Publish messages to observe routing outcomes.
The lecture demonstrates exchange-to-exchange binding and exchange-to-queue routing in RabbitMQ, creating two exchanges and two queues, declaring direct durable exchanges, and testing routing with keys.
Explore how alternate exchanges handle non-routable messages in RabbitMQ by routing them to a designated alternate exchange, with fanout exchanges commonly used for this purpose.
Demonstrate alternate exchange design using the management web interface with direct and fanout exchanges. Publish messages to verify routing to bound queues and fallback to the alternate queue.
Demonstrate testing the alternate exchange feature in RabbitMQ by creating a direct exchange with an alternate fanout exchange, binding queues, and publishing messages with routing keys to observe routing.
"This course requires you to download RabbitMQ for Windows or Docker Desktop for Windows and Eclipse IDE.
If you are a Udemy Business user, please check with your employer before downloading software."
RabbitMQ is a very popular message broker. It is heavily used in microservices architectures, as a solution for asynchronous, decoupled communication/messaging problem between the services.
It is available on Windows, Linux and Mac. There are also many official Docker images that are ready to run.
RabbitMQ is easy to install, learn, configure and use. There are many official client libraries for popular programming languages. Its management web interface plugin makes learning and testing RabbitMQ even easier.
This course starts with message broker basics continues with RabbitMQ, its components and common usage scenarios. There are demo lessons for testing the RabbitMQ system using management web interface. There are also coding lessons that demonstrates how to use RabbitMQ features from code and implement common messaging scenarios using C#. But you can also download the Java versions of the same sample projects under each coding lesson. You will see that codes are almost the same.
I think, spending a weekend studying this course will be enough to complete it and learn how to use RabbitMQ using management UI, C# and Java client libraries.
I appreciate your valuable feedbacks. Feel free share your feedbacks, recommendations and ask questions on course's questions & answers part.
C# and Java sample project source codes are added as a resource to each coding lecture. You can also find all the samples as a single file under "All Codes" section.
Current C# samples for RabbitMQ .Net client library versions 5.1.0 and 6.4.0.
Current Java samples (Maven projects) for RabbitMQ Java client library version 5.15.0.