计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
rabbitmq【效率与协作】RabbitMQ message broker with AMQP protocol. Covers exchanges, queues, bindings, and messaging patterns. Use for reliable message delivery and complex routing scenarios. USE WHEN: user mentions "rabbitmq", "amqp", "exchanges", "routing patterns", "topic exchange", "fanout", asks about "message routing", "work queues", "request/reply", "flexible routi…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: rabbitmq description: | RabbitMQ message broker with AMQP protocol. Covers exchanges, queues, bindings, and messaging patterns. Use for reliable message delivery and complex routing scenarios.
USE WHEN: user mentions "rabbitmq", "amqp", "exchanges", "routing patterns", "topic exchange", "fanout", asks about "message routing", "work queues", "request/reply", "flexible routing"
kafka or pulsar; cloud-native - use nats; AWS-native - use sqs; JMS required - use activemq; simple pub/sub - use redis-pubsub
allowed-tools: Read, Grep, Glob, Write, EditFull Reference: See advanced.md for producer patterns (Node.js, Java, Python, Go), consumer patterns, security configuration, and high availability setup.
Deep Knowledge: Use
mcp__documentation__fetch_docswith technology:rabbitmqfor comprehensive documentation.
services:
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672" # AMQP
- "15672:15672" # Management UI
environment:
- RABBITMQ_DEFAULT_USER=admin
- RABBITMQ_DEFAULT_PASS=admin
| Concept | Description |
|---|---|
| Exchange | Routes messages to queues |
| Queue | Buffer that stores messages |
| Binding | Rule linking exchange to queue |
| Routing Key | Message attribute for routing |
Producer ──▶ Exchange ──binding──▶ Queue ──▶ Consumer
│
├── direct (exact routing key match)
├── topic (pattern matching)
├── fanout (broadcast to all)
└── headers (header-based routing)
| Type | Routing | Use Case |
|---|---|---|
| direct | Exact key match | Task queues, RPC |
| topic | Pattern (*.#) | Event routing |
| fanout | Broadcast all | Notifications |
| headers | Header match | Complex routing |
# Topic exchange patterns
order.* → matches order.created, order.updated
order.# → matches order.created, order.item.added
*.created → matches order.created, user.created
| Argument | Description |
|---|---|
x-message-ttl | Message expiration (ms) |
x-max-length | Max queue size |
x-dead-letter-exchange | DLX for rejected messages |
x-dead-letter-routing-key | DLQ routing key |
x-queue-type | classic, quorum, stream |
| Anti-Pattern | Why It's Bad | Solution |
|---|---|---|
| No prefetch limit | Consumer overwhelmed | Set prefetch to 10-50 |
| Classic queues in HA | Data loss on node failure | Use quorum queues |
| No DLX configured | Poison messages loop forever | Configure dead letter exchange |
| Automatic acks | Message loss on crash | Use manual acks |
| No publisher confirms | Silent message loss | Enable confirms for critical messages |
| Issue | Likely Cause | Fix |
|---|---|---|
| Messages piling up | Slow/dead consumer | Check consumer count and processing |
| High memory usage | Too many unacked messages | Reduce prefetch, add consumers |
| Messages not routed | Wrong routing key | Check exchange-queue bindings |
| Duplicate messages | Consumer crashed before ack | Implement idempotent processing |
| Publisher confirms timeout | Broker overloaded | Reduce publish rate |
Available topics: basics, exchanges, queues, consumers, clustering, production