EInnovator - RabbitMQ Training
EInnovator - RabbitMQ Training

RabbitMQ Course

Course Overview

This intensive three day, instructor-led course in RabbitMQ provides a deep dive into how to install, configure, and develop applications which leverage RabbitMQ messaging. The course begins with RabbitMQ installation and general configuration. It continues with developing messaging applications using the Java APIs, and delves into more advanced topics including clustering, high availability, performance, and security. Modules are accompanied by lab exercises that provide hands-on experience.

Course Format and Modes of Delivery

  • Three days of instructor-led training
  • 50% lecture, 50% hands-on lab
  • Corporate On-Site
  • Public

Target Audience

  • Developers
  • Architects
  • Administrators


  • Knowledge on Core Java or any enterprise programming language

Course Objectives

At the end of the course, you should be able to do the following:

  • Install and configure RabbitMQ
  • Activate and use plugins such as the web management console
  • Implement messaging patterns and applications using the Java client
  • Set up a cluster of RabbitMQ nodes
  • Configure high availability appropriately
  • Tune and optimize RabbitMQ for better performance
  • Secure RabbitMQ


Course Modules

  • Benefits of messaging and asynchronous systems
  • Why JMS isn’t enough
  • The AMQP model
  • Differences between AMQP and JMS
  • Product description and main capabilities
  • Installation, directory structure, and configuration
  • Durability with the Mnesia database
  • Management with Command Line and Web console
  • Multitenancy with virtual hosts
  • Clients (Java, C#, Python, Ruby, etc.)
  • Focus on the Java client
  • Publishing and consuming messages
  • Managing AMQP resources
  • AMQP routing with exchanges and queues
  • Higher-level abstractions (Spring AMQP & Spring Integration)
  • Messaging patterns
  • Durable queues and exchanges
  • Persistent messages
  • AMQP and JMS transactions
  • Transactions and acknowledgments
  • Dead lettering
  • Best practices for bulletproof message flows
  • Scalable messaging architecture through clustering
  • Creating a cluster
  • Disk vs. RAM nodes
  • Administration of a cluster
  • Load balancing
  • Managing Plugins
  • Exposing AMQP functionality using the STOMP protocol
  • Messaging over a WAN using Shovel or Federation
  • Node failure handling
  • Mirrored queues
  • Slave synchronization
  • Client failover handling
  • Impacts of configuration and client code options on performance
  • Memory-based flow control
  • Best practices
  • Spring’s AMQP template
  • Configuring AMQP Resources using Spring
  • Sending and receiving messages
  • Why secure AMQP communication?
  • Securing RabbitMQ at the protocol-level (SSL/SASL)
  • Users management
  • Authentication using LDAP
  • Setting permissions using virtual hosts
  • Management API
  • Tools
  • What to monitor
  • Connecting to a RabbitMQ server
  • Publishing messages
  • Consuming messages
  • Managing AMQP resources