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 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

1 INTRODUCTION TO MESSAGING AND AMQP

  • Benefits of messaging and asynchronous systems
  • Why JMS isn’t enough
  • The AMQP model
  • Differences between AMQP and JMS

2 RABBITMQ PRODUCT PRESENTATION

  • 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

3 DEVELOPMENT AND INTEGRATION

  • 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

4 RELIABLE MESSAGING DEVELOPMENT

  • Durable queues and exchanges
  • Persistent messages
  • AMQP and JMS transactions
  • Transactions and acknowledgments
  • Dead lettering
  • Best practices for bulletproof message flows

5 CLUSTERING

  • Scalable messaging architecture through clustering
  • Creating a cluster
  • Disk vs. RAM nodes
  • Administration of a cluster
  • Load balancing

6 PLUGINS

  • Managing Plugins
  • Exposing AMQP functionality using the STOMP protocol
  • Messaging over a WAN using Shovel or Federation

7 HIGH AVAILABILITY

  • Node failure handling
  • Mirrored queues
  • Slave synchronization
  • Client failover handling

8 PERFORMANCE

  • Impacts of configuration and client code options on performance
  • Memory-based flow control
  • Best practices

9 SPRING AMQP

  • Spring’s AMQP template
  • Configuring AMQP Resources using Spring
  • Sending and receiving messages

10 SECURITY

  • Why secure AMQP communication?
  • Securing RabbitMQ at the protocol-level (SSL/SASL)
  • Users management
  • Authentication using LDAP
  • Setting permissions using virtual hosts

11 MONITORING

  • Management API
  • Tools
  • What to monitor

12C# RabbitMQ Driver (Bonus)

  • Connecting to a RabbitMQ server
  • Publishing messages
  • Consuming messages
  • Managing AMQP resources

Study and Reference Resources

QuickGuides

Web Resources

Comments and Discussion

Upcoming Events

Datasheet

Delivery

Format / Modes

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

Target Audience

  • Developers
  • Architects
  • Sys Admins / Devops Specialists

Prerequisites

  • Some experience with developing applications using Java or other similar language