1 Introduction to Messaging and AMQP
- Benefits 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