Course Code: bespokerabbitmq
Duration: 35 hours
Course Outline:

1. Introduction to RabbitMQ

Who’s using RabbitMQ, and how?

The advantages of loosely coupled architectures

Decoupling your application

Setting up the required folders

Operating system considerations

Downloading and installing RabbitMQ

2. Understanding messaging

The role of a consumer

The role of a producer

Bindings consumers and producers

Messages and durability

How to verify delivery

3. Administering RabbitMQ

Starting and stopping nodes

RabbitMQ configuration files

How to manage privileges

Viewing statistics and analyzing logs

Sending alerts

How to set up parallel processing

4. A programmer perspective

Installing and configuring Node.js

Understanding Node.js

Javascript and the amqplib client library

Sending and receiving messages using javascript on Node.js

5. Message patterns for developers via exchange routing

Simple message routing using the direct exchange

Creating the application architecture

Creating the RPC worker

Writing a simple RPC publisher

Broadcasting messages via the fanout exchange

Selectively routing messages with the topic exchange

Selective routing with the headers exchange

Exchange-to-exchange routing

Routing messages with the consistent-hashing exchange

6. Detailed analysis and usage of amqplib

Details about amqplib - the javascript client library

The usage with javascript

How to deal with failure

Exceptions and promises

Understanding flow control

The argument handling

The connect phase

ChannelModel and CallbackModel

Declaring and using Channels

Writing robust code

Guidelines of usage

7. High availability using clustering

Architecture of a cluster

Queues in a cluster

Setting up a test cluster

Distributing the nodes to more machines

How to preserve messages: mirrored queues

Understanding best practices

8. Implementing failover and replication

Setting up a load balancer-based master/slave

Installing the Shovel plugin

Configuring and running Shovel

Installing and configuring HAProxy

Failing javascriptclients between servers

9. Scaling RabbitMQ between datacenters

Understanding the goal of the federation plugin

Installing and configuring the federation plugin

Active-passive high-availability clustering

Active-active high-availability clustering

Understanding best practices

10. Web tools to administer RabbitMQ

The RabbitMQ Management plugin

Managing RabbitMQ from the web console

Administering users from the web console

Managing queue from the web console

Using the command line interface

11. RabbitMQ and the REST API

REST API features

Accessing statistics

vhost and user provisioning

12. Monitoring and securing RabbitMQ

Message durability and Message acknowledgement

Memory usage and process limits

Setting up SSL