Course Code: rabmqnetadv
Duration: 28 hours
Prerequisites:
  • Experience with .Net Framework and C# programming
  • An understanding of enterprise application development concepts
  • Basic experience with RabbitMQ

Audience

  • Developers
  • Software architects/engineers
  • Administrators
  • Technical managers
Overview:

RabbitMQ is an open source enterprise messaging broker for storing and retrieving messages passed by processes, applications, and servers. It uses a message queue for processing tasks asynchronously and is especially useful in applications that need to process large data sets in the background, while concurrently responding to live user requests in real-time.

In this instructor-led, live training, participants will learn how to install, configure and administer RabbitMQ, then integrate RabbitMQ messaging into a number of sample .NET applications.

By the end of this training, participants will be able to:

  • Setup, configure and manage RabbitMQ
  • Understand RabbitQ's role in the design and implementation of a microservices architecture
  • Understand how RabbitMQ compares to other Message Queuing Architectures
  • Set up and use RabbitMQ as a broker for handling asynchronous and synchronous messages for real-world enterprise .Net applications
  • Set up the necessary environment to start developing advanced messaging solutions with RabbitMQ
  • Understand how to design a distributed microservices architecture with RabbitMQ
  • Learn how to implement advanced configuration, security, networking, high availability, and replication
  • Know the common issues encountered in RabbitMQ installations and how to resolve them
  • Learn about memory optimization, flow control, and advanced performance tuning
  • Apply some advanced troubleshooting techniques

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice
Course Outline:

Module 1. Introduction

  • RabbitMQ vs Windows' default queue technology (MSMQ)
  • Overview of RabbitMQ features and architecture
  • Understanding Microservices architecture and Message Queuing
  • Overview of Messaging Protocols: REST, SOAP and AMQP
  • How RabbitMQ Implements AMQP to Enable Loose Coupling Among Services

Module 2. RabbitMQ Installation

  • Setting up the Development Environment
  • Basic to advanced server concepts
  • Setting up a RabbitMQ instance
  • Common installation problems

Module 3. RabbitMQ Configuration

  • Navigating the management UI
  • Designing distributed microservices
  • Files and directories
  • Logging
  • Policies and parameters
  • Exporting and importing definitions
  • Managing virtual hosts
  • Runtime tuning
  • Message TTL and queues
  • Plugin development
  • Networking in RabbitMQ
  • Advanced Configuration

Module 4. Using RabbitMQ in .NET environment

  • Configuring RabbitMQ for C# Applications
  • Overview of the RabbitMQ .NET client API
  • Connecting to RabbitMQ
  • Writing Sender and Receiver Applications in C#
  • Understanding different types of senders/receivers
  • Performing Common RabbitMQ Operations with the .Net client
  • Sending, Receiving and Queuing messages
  • Writing Queues Via the Administration UI and PowerShell
  • Integrating RabbitMQ into an Existing Enterprise .Net Application
  • Routing with Topics Exchange vs Direct Exchange
  • Implementing different types of Exchanges

Module 5. Understanding RabbitMQ Security

  • Access controls
  • User authentication and permissions
  • Certificate authentication
  • Client connections
  • Using TLS

Module 6. Clustering in RabbitMQ

  • High Availability and Replication
  • Setting Up and Managing a RabbitMQ Cluster
  • Quorum queue
  • Streams implementation
  • Understanding Federation

Module 7. Tuning and monitoring a running RabbitMQ

  • Tools and Techniques for Administering RabbitMQ
  • Managing RabbitMQ via a REST API
  • Monitoring memory usage
  • Memory management
  • Message store configuration
  • Flow control
  • Advanced performance tuning
  • Advanced Troubleshooting Techniques

Summary and Conclusion