NATS 轻量、低延迟,适合服务间请求响应、事件总线和云原生场景,JetStream 提供持久化;RabbitMQ 是成熟的 AMQP 消息代理,路由、ack、任务队列和管理生态强。低延迟/RPC 选 NATS,复杂路由/任务队列选 RabbitMQ。
| 维度 | NATS | RabbitMQ |
|---|---|---|
| 协议 | NATS 协议 | AMQP 0-9-1/1.0、MQTT 等 |
| 模型 | subject 发布订阅 + 请求响应 | 队列/交换机/绑定 |
| 持久化 | 核心不持久化,JetStream 可选 | 队列/消息持久化 |
| 路由 | subject 通配符 | direct/topic/fanout/headers |
| 延迟 | 极低 | 低 |
| 确认 | JetStream ack | ack/nack + prefetch |
| 运维 | 单二进制,轻量 | 管理插件、集群、策略 |
| 典型场景 | RPC、事件、IoT/边缘 | 任务队列、业务消息 |
nats pub app.events '{"id":1}'
nats sub 'app.>' --count 10
rabbitmqctl list_queues -p /app name messages consumers
*/> 语义要确认;写错会收不到消息。nats — NATSrabbitmq / rabbitmqctl — RabbitMQnats-server — NATS 服务端