# rabbitmq/rabbitmq-tutorials

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rabbitmq-rabbitmq-tutorials).**

6,889 stars · 3,557 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/rabbitmq/rabbitmq-tutorials
- Homepage: http://www.rabbitmq.com/getstarted.html
- awesome-repositories: https://awesome-repositories.com/repository/rabbitmq-rabbitmq-tutorials.md

## Topics

`rabbitmq` `tutorials`

## Description

This project is a collection of learning resources and instructional guides for implementing asynchronous messaging patterns using RabbitMQ. It provides a series of tutorials and runnable code examples focused on the Advanced Message Queuing Protocol to help users decouple services via a message broker.

The resources cover practical implementation patterns including request-reply, pub-sub, and stream processing. These guides demonstrate how to use official client libraries to balance worker loads, route messages across multiple consumers in a distributed system, and deploy high availability broker clusters on Kubernetes.

The material spans several capability areas, including event-driven architecture, distributed task processing, and message broker monitoring. It also addresses operational topics such as infrastructure provisioning, cluster administration, and the use of Prometheus and management interfaces for system observability.

## Tags

### Networking & Communication

- [Message Brokers](https://awesome-repositories.com/f/networking-communication/message-brokers.md) — Demonstrates how to use a message broker to remove direct dependencies between distributed services.
- [Consumer Group Coordinators](https://awesome-repositories.com/f/networking-communication/message-broker-consumers/consumer-group-coordinators.md) — Implements patterns for distributing messages across multiple parallel workers to balance processing loads.
- [Topic Routing Patterns](https://awesome-repositories.com/f/networking-communication/messaging-api-integrations/topic-message-listeners/topic-routing-patterns.md) — Demonstrates selective data distribution using routing keys and pattern-based message routing.
- [Broadcast Messaging](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/real-time-communication/broadcast-messaging.md) — Demonstrates how to send a single message to multiple subscribers simultaneously to notify various systems. ([source](https://www.rabbitmq.com/getstarted.html))
- [Messaging Client Connections](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-protocols-standards/network-protocols/connection-establishment-protocols/messaging-client-connections.md) — Implements standard protocols and secure transport for establishing messaging client connections. ([source](https://www.rabbitmq.com/docs/download))
- [Delivery Confirmations](https://awesome-repositories.com/f/networking-communication/data-transmission-reliability/delivery-confirmations.md) — Implements mechanisms to track whether a message successfully reached the broker to prevent data loss. ([source](https://www.rabbitmq.com/getstarted.html))
- [Stream Offset Tracking](https://awesome-repositories.com/f/networking-communication/message-stream-handlers/message-stream-consumer-groups/stream-offset-tracking.md) — Demonstrates how to record a consumer's position within a stream to resume processing from a specific point. ([source](https://www.rabbitmq.com/getstarted.html))

### DevOps & Infrastructure

- [Message Broker Clusters](https://awesome-repositories.com/f/devops-infrastructure/cluster-administration/message-broker-clusters.md) — Includes detailed instructions for setting up and managing high availability RabbitMQ clusters on Kubernetes.
- [Distributed Task Queues](https://awesome-repositories.com/f/devops-infrastructure/distributed-task-queues.md) — Provides code examples for distributing background tasks across multiple worker nodes to balance processing loads.
- [Distributed Task Workers](https://awesome-repositories.com/f/devops-infrastructure/distributed-task-workers.md) — Teaches how to spread heavy workloads across multiple parallel workers to increase throughput.
- [Broker High Availability](https://awesome-repositories.com/f/devops-infrastructure/helm-chart-management/high-availability-cluster-deployments/broker-high-availability.md) — Provides documentation and examples for deploying high availability broker clusters on Kubernetes.
- [High Availability Clustering](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering.md) — Coordinates multiple broker nodes to ensure continuous availability and distributed processing. ([source](https://www.rabbitmq.com/docs/manage-rabbitmq))
- [High Availability Clusters](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters.md) — Provides guides for configuring multi-node clusters to ensure service continuity and fault tolerance.
- [Kubernetes Cluster Orchestration](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-orchestration.md) — Provides automation for deploying and managing broker clusters using Kubernetes operators. ([source](https://www.rabbitmq.com/docs/download))
- [Queue-Specific Metrics](https://awesome-repositories.com/f/devops-infrastructure/message-queues/work-queue-performance-metrics/queue-specific-metrics.md) — Explains how to use the HTTP API to retrieve detailed statistics like message rates and memory usage for specific queues. ([source](https://www.rabbitmq.com/docs/monitoring))

### Education & Learning Resources

- [Messaging Patterns](https://awesome-repositories.com/f/education-learning-resources/messaging-patterns.md) — Provides a comprehensive collection of educational resources for implementing asynchronous messaging patterns.
- [Messaging Protocol Tutorials](https://awesome-repositories.com/f/education-learning-resources/messaging-protocol-tutorials.md) — Serves as a collection of runnable code examples and guides for implementing asynchronous messaging patterns.

### Software Engineering & Architecture

- [Event-Driven Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures.md) — Guides the construction of reactive systems using broadcast messages and selective routing.
- [Messaging Patterns](https://awesome-repositories.com/f/software-engineering-architecture/messaging-patterns.md) — Implements practical communication strategies such as request-reply and pub-sub for coordinating data flow between services.
- [Language-Agnostic APIs](https://awesome-repositories.com/f/software-engineering-architecture/language-agnostic-apis.md) — Enables communication between services written in different languages using standard protocols and official libraries.
- [Request-Response Pattern Support](https://awesome-repositories.com/f/software-engineering-architecture/request-response-pattern-support.md) — Provides a pattern for sending requests and waiting for specific responses to simulate synchronous communication. ([source](https://www.rabbitmq.com/getstarted.html))

### User Interface & Experience

- [Request Correlation Tokens](https://awesome-repositories.com/f/user-interface-experience/request-state-tracking/request-lifecycle-tracking/request-correlation-tokens.md) — Implements request-reply patterns using unique correlation identifiers over asynchronous channels.

### Data & Databases

- [Consumer Offset Trackers](https://awesome-repositories.com/f/data-databases/consumer-offset-trackers.md) — Provides examples of tracking consumer positions within message streams to allow resuming processing.
- [High-Throughput Data Streaming](https://awesome-repositories.com/f/data-databases/high-throughput-data-streaming.md) — Provides examples of using specialized stream protocol clients to handle large-scale data throughput. ([source](https://www.rabbitmq.com/download.html))
- [Message Routing](https://awesome-repositories.com/f/data-databases/message-brokers/message-routing.md) — Implements routing keys to deliver messages to specific queues so consumers receive only relevant data. ([source](https://www.rabbitmq.com/getstarted.html))
- [Multi-Language Client Libraries](https://awesome-repositories.com/f/data-databases/multi-language-client-libraries.md) — Provides official client libraries for multiple programming languages to interact with the message broker. ([source](https://www.rabbitmq.com/download.html))

### System Administration & Monitoring

- [Message Broker Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/performance-monitoring/message-broker-monitoring.md) — Provides guides on tracking message throughput and latency using Prometheus and built-in visualization tools.
- [Prometheus-Based Metric Exporters](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-exporters/prometheus-based-metric-exporters.md) — Demonstrates how to expose RabbitMQ node, connection, and queue metrics in a Prometheus-compatible format. ([source](https://www.rabbitmq.com/docs/monitoring))
- [RabbitMQ Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/rabbitmq-performance-monitoring.md) — Provides guides for monitoring RabbitMQ broker resource utilization, including memory alarms and disk space statistics. ([source](https://www.rabbitmq.com/docs/monitoring))
