Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Working With RabbitMQ

Course Summary

The Working with RabbitMQ training course teaches students how RabbitMQ is a message queue for processing tasks asynchronously. It can be very useful in tasks like file transcoding, delivering notifications, and asynchronous or delayed calculations. Message queue systems are especially useful in systems where it's necessary to decouple heavy-weight processing from a live user request.

This course begins by exploring the history and benefits of RabbitMQ. Next, the course dives into messaging concepts and patterns, administration, and clustering using hands-on labs to reinforce learning. The course concludes with students starting to write code that survives failure, load balancing, exploring use-cases on the Web, and optimizing RabbitMQ.

Learn a solid introduction to RabbitMQ including: web applications, administration and optimization.
Developers and teams looking to learn RabbitMQ.
Software Developer - System Administrator
Skill Level
Learning Spikes - Workshops
2 Days
Related Technologies


Productivity Objectives
  • Install and configure RabbitMQ
  • Apply plugins such as the web management console
  • Implement messaging patterns and applications using Java
  • Scale high throughput applications with RabbitMQ clustering and HAProxy
  • Identify best practices for RabbitMQ to ensure reliability and stable message delivery

What You'll Learn:

In the Working With RabbitMQ training course, you'll learn:
  • RabbitMQ
    • A brief introduction to Erlang and RabbitMQ
    • Installing RabbitMQ on Unix systems
  • Messaging Concepts and Patterns
    • AMQP
    • Consumers and producers
    • Queues
    • Exchanges and bindings
    • Virtual hosts and separation
    • Durability
    • Acknowledging messages in consumers
    • Using publisher confirms to verify delivery
  • RabbitMQ Administration
    • Brief look at RabbitMQ configuration: Users & Permissions
    • Viewing statistics
  • Utilizing RabbitMQ in Applications
    • Designing code to be asynchronous
    • Messaging patterns in applications
    • Java API overview
    • Fire-and-forget models
    • Sending alerts
  • Parallel Processing
    • Building data processing pipelines
    • Message delivery issues and idempotency
  • Clustering RabbitMQ for Reliability
    • RabbitMQ clustering
    • Queues in a cluster
  • Distributing Exchanges
    • In memory vs. persistent storage
    • Setting up a cluster on a single machine
    • Distributing the nodes to more machines
    • Upgrading nodes in a cluster
    • Highly available (mirrored) queues
  • Writing Code that Survives Failure
    • Load balancing RabbitMQ instances
    • Example load balancing with HAProxy
    • Handling lost connections/retries effectively
  • Scaling Out Further - Federation and Shoveling
    • Why clustering isn't always sufficient
    • Hierarchical message distribution
    • Communication between locations with federated exchanges
    • Introduction to the Shovel plugin
    • Installing Shovel
  • Configuring and Running Shovel
  • Administering RabbitMQ from the Web
    • RabbitMQ Management plugin
    • Managing RabbitMQ from the web console
    • Managing users from the web console
    • Managing exchanges and queues from the web console
  • Optimizing RabbitMQ
    • Speeding up Rabbit
    • Durability vs. Throughput
    • Memory usage and process limits
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”


Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.