Skip to main content

RabbitMQ Config Generator

Build RabbitMQ exchanges, queues, and bindings visually — export as JSON or YAML. Configure exchange types (direct, topic, fanout, headers), queue arguments (TTL, max-length, DLX), and routing key patterns. Runs entirely in your browser.

✓ JSON & YAML output ✓ All 4 exchange types ✓ DLX & TTL support

Frequently Asked Questions

What exchange types does RabbitMQ support?▼

RabbitMQ has four built-in exchange types: Direct routes messages by exact routing key match (good for task queues). Topic routes by pattern matching using * (one word) and # (zero or more words) wildcards — great for pub/sub with namespaced topics. Fanout broadcasts to all bound queues regardless of routing key — useful for notifications and cache invalidation. Headers routes by message header attributes instead of routing key.

What is a durable queue/exchange?▼

Durable queues and exchanges survive broker restarts. Non-durable (transient) resources are deleted when RabbitMQ restarts. For production use cases where losing messages is not acceptable, always use durable queues with persistent message delivery (delivery_mode: 2). Note that durability applies to the queue definition — messages themselves also need to be published as persistent to survive restarts.

What is a Dead Letter Exchange (DLX)?▼

A Dead Letter Exchange receives messages that cannot be processed — they've expired (exceeded TTL), been rejected, or the queue has exceeded its max-length limit. Set x-dead-letter-exchange on a queue to redirect failed messages to a DLX for later inspection, retry, or alerting. This is essential for building resilient message pipelines.

How does x-message-ttl work?▼

x-message-ttl sets the maximum time (in milliseconds) a message can stay in the queue before being discarded or dead-lettered. For example, 86400000 = 24 hours. Per-message TTL can also be set at publish time via the expiration property. If both are set, the shorter of the two applies.

What is x-max-length?▼

x-max-length caps the number of messages in a queue. When the limit is reached, the oldest messages (head of queue) are dropped or dead-lettered to make room for new ones. This prevents unbounded queue growth in cases where consumers fall behind. You can also set x-max-length-bytes to cap by total byte size.

How do I apply this configuration to RabbitMQ?▼

For JSON output: use the RabbitMQ Management API (POST /api/definitions) or the rabbitmqadmin CLI import command. For YAML: use it with your infrastructure-as-code tooling like Ansible or Terraform's RabbitMQ provider. In application code, use your client library's channel.exchangeDeclare(), channel.queueDeclare(), and channel.queueBind() methods.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Related Articles

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →