Special Notices

If both classroom and virtual dates are available for this course please specify your preference when booking.

Prerequisites

  • Knowledge on Core Java or any enterprise programming language

Who should attend

  • Developers
  • Architects
  • Administrators

Delegates will learn how to

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.

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

Outline

1. INTRODUCTION TO MESSAGING AND AMQP

  • Benefts of messaging and asynchronous systems
  • Why JMS isn’t enough
  • Introduction to AMQP
  • RabbitMQ case studies

2. RABBITMQ INSTALLATION

  • Product description and main capabilities
  • Installation, directory structure, and configuration
  • Durability with the Mnesia database
  • Basic administration
  • Web management console
  • Multitenancy with virtual hosts
  • Logging with the firehose tracer

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 & Integration, Pika)
  • Messaging patterns

4. RELIABLE MESSAGING DEVELOPMENT

  • Durable queues and exchanges
  • Persistent messages
  • AMQP and JMS transactions
  • AMQP acknowledgments
  • Dead lettering
  • Multiple transactional resources

5. CLUSTERING

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

6. HIGH AVAILABILITY

  • Cluster node failures and consequences
  • Mirrored queues
  • Slave synchronization
  • Client failover handling

7. PLUGINS

  • RabbitMQ plugins introduction
  • LDAP authentication
  • Shovel
  • Federation
  • Shovel vs federation
  • STOMP

8. PERFORMANCE

  • Impacts of configuration and client code options on performance
  • Flow control
  • Best practices

9. SECURITY

  • Virtual hosts, users, and access control
  • Authentication
  • Secured communication

10. OPERATIONS AND MONITORING

  • Disk, firewall, heartbeat tuning
  • Monitoring
  • Management API
  • Support for third-party monitoring tools

11. SPRING AMQP (OPTIONAL)

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