Skip to main content

message-queues

RabbitMQ, Kafka, SQS, pub/sub, competing consumers, dead letter queues, and event streaming

来源信息

仓库
cosmicstack-labs/mercury-agent-skills
最近来源活动
2026年5月10日 06:29
检测到的 SKILL.md 语言
英语
星标
476
分支
63

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
message-queues
description
RabbitMQ, Kafka, SQS, pub/sub, competing consumers, dead letter queues, and event streaming
metadata
{"author":"cosmicstack-labs","version":"1.0.0","category":"backend","tags":["message-queues","kafka","rabbitmq","sqs","event-streaming"]}
# Message Queues Design reliable message-driven systems. ## Queue Types | Queue | Persistence | Ordering | Use Case | |-------|------------|----------|----------| | RabbitMQ | Optional | Per queue | Task distribution, RPC | | Apache Kafka | Durable (disk) | Per partition | Event streaming, logs | | AWS SQS | Durable | Best effort (std) / Strict (FIFO) | Serverless decoupling | | Redis Pub/Sub | None | Per channel | Real-time notifications | ## RabbitMQ Patterns ### Work Queues (Competing Consumers) ``` Producer → Queue → Consumer 1 → Consumer 2 → Consumer 3 ``` - Messages distributed round-robin - Ack on success, nack on failure (requeue or DLQ) - Prefetch count controls concurrency ### Pub/Sub (Exchange → Binding → Queue) - Fanout: broadcast to all queues - Direct: route by routing key - Topic: route by pattern (user.*, user.created) - Headers: route by header values ## Kafka Patterns ### Topics & Partitions - Messages within a partition are ordered - Partitions enable parallelism - Consumer group = one instance per partition ### Producer ```javascript await producer.send({ topic: 'order-events', messages: [{ key: orderId, value: JSON.stringify(order) }], }); ``` ### Consumer ```javascript await consumer.run({ eachMessage: async ({ topic, partition, message }) => { await processOrder(message.value); }, }); ``` ## Dead Letter Queues - Messages that can't be processed go to DLQ - Analyze DLQ periodically for systemic issues - DLQ messages can be replayed after fix - Set max retry count before DLQ ## Best Practices - Idempotent consumers (same message processed twice = safe) - Monitor queue depth, consumer lag, error rate - Set message TTL to prevent infinite backlog - Use structured message schemas (Avro, Protobuf) - Test with network failures and consumer crashes
在 GitHub 查看