
Explore RabbitMQ messaging and AMQP fundamentals, including producers, consumers, brokers, exchanges, queues, and bindings, and learn how messages travel from producer to queue via exchanges.
Explore rabbitmq exchange types, including default, direct, fanout, topic, and header exchanges; learn routing keys, binding keys, and how header properties with x-match govern delivery to queues.
Explore what AMQP is as an open standard protocol for enterprise messaging and see how RabbitMQ implements it to connect producers and consumers through brokers, exchanges, and bindings.
Explore RabbitMQ architecture by implementing exchanges: direct, fanout, topic, and header, with a producer-consumer workflow, while configuring queue properties such as time-to-live, max length, and priority, including delay and error-handling.
Install Java 11+ as the baseline, explain why Java 11 is chosen for long-term support, cover alternatives, download from Oracle, sign in, and install with default settings.
Install IntelliJ, selecting the free community version with default settings to start your RabbitMQ messaging with Java (Spring Boot) project, and leverage its fast learning curve and code completion.
Install and configure Lombok in IntelliJ to use the library for server-side code and avoid getter and setter methods, then enable it in the IDE settings.
Download and install RabbitMQ and the RabbitMQ management console. Enable the management plugin, start the RabbitMQ service, and access the console at localhost:15672 with the default credentials.
Explore dependency injection, beans, and configuration in Spring Boot. Learn constructor, setter, and field injection, and use component, repository, service, and controller annotations with transactional support.
Explore Lombok basics for Java encapsulation, using @Getter, @Setter, @Data, and @Value to auto-generate getters, setters, equals, hashCode, and constructors for immutable classes.
Explore building rest services with a rest controller, using get, post, put, patch, and delete mappings, passing data via request bodies or query parameters and returning response entities.
Install postman, an API development tool, and learn to build, test, and convert API calls to code in multiple languages using HTTP methods, headers, and JSON bodies with JSON placeholder.
Explore how the @RequestParam annotation in Spring extracts query, form, and header parameters, with customizable names, required flags, and default values.
Explore how the @PathVariable annotation maps URI template variables to method parameters in Spring, showing required vs optional flags, default names, and customizing variable names.
Explain how the @RequestBody annotation maps the HTTP request body to a domain object using HTTP message converters, selecting the converter based on content type and available libraries like Jackson.
Explore the springboard project's infrastructure, building a Java Spring Boot mvc app with model entities, repositories, services, and controllers, exposed as rest api using Lombok and Gradle.
Create a spring boot project using Spring Initializr with Gradle, Java 11, and messaging and Lombok dependencies, then import into IntelliJ and enable annotation processing to start coding.
Choose Gradle for project dependencies to gain faster incremental builds and efficient task execution. Contrast Gradle with Maven, highlighting performance differences and incremental builds that rebuild only changed files.
Configure RabbitMQ with application properties and create a Keishin Connection Factory and Jackson Message Convertor to manage channels efficiently.
Discover how the default exchange in RabbitMQ automatically binds each queue with an empty routing key, enabling a simple direct messaging setup in Spring Boot.
Publish a message object to RabbitMQ via a Spring Boot REST controller using the default exchange; test with Postman and the management console.
Learn to implement a direct exchange in RabbitMQ with Spring Boot, configuring queues, exchanges, and routing keys, binding them, and testing through the management console.
Test a RabbitMQ direct exchange using a Spring Boot REST API by sending messages with routing keys to Q1 or Q2 and observing delivery in the corresponding queues.
Declare and configure a RabbitMQ fanout exchange with durable queues, bindings, and management in Spring Boot, then test via management console and REST API.
Test a fan out exchange in RabbitMQ with a Spring Boot REST API by posting messages via Postman to the exchange and verifying delivery in the management console.
Learn topic exchange in RabbitMQ, matching routing keys with binding patterns using star and count expressions. Implement queues, a topic exchange, and bindings in Spring Boot.
Learn to build a rest api to test a topic exchange in RabbitMQ using Spring Boot, routing keys, and topic queues, with hands-on Postman testing.
Learn how header exchanges route messages using header properties and binding conditions with x-match any, then configure queues, exchanges, and bindings in a Spring Boot RabbitMQ app.
Create a rest api to test RabbitMQ header exchange with x match. Build a header controller and endpoints to route messages to header queues based on M1, M2, and headers.
Hi there,
In this course, we will learn every details of RabbitMQ from A to Z. To learn it, we will use Spring Boot project. First of all, we will start with meaning of it so we will start with basic things. And we will go on step by step with its details... Maybe the most important thing about this course, we will learn some practical features of RabbitMQ like Highly Availability, Policies that you couldn't find enough resource on internet...
Here is the some basic topics in this course that will be learned:
Queue
Exchange
Binding
Producer
Consumer
Routing Key
Policies
Federation Upstream
Clustering With Docker
Queue Arguments/Features
Highly Availability
Exception Handling
Retry Mechanism
Max Priority
Mirroring
AMQP Default
Virtual Host
Connection vs Channel
In this course, we will work with multiple nodes via Docker. So we will also learn basic Docker commands about RabbitMQ.
Why do we need RabbitMQ?
- Messaging queue... We will see the details of it.
Should we choose rabbitmq over apache-kafka?
- It depends... We will see the details of it.
Is Spring-Boot the right framework to work with rabbitmq? Do we really need it?
- Absolutely. It provides many functionalists and flexibility...
Are there disadvantages of rabbitmq over apache-kafka?
- It depends... We will see the details of it.
-----------------
To implement all rabbitmq steps, we will create a spring boot project. Our project will include model view controller structure. Of course, one of our aim is to create readable projects at the end of the day.