RabbitMQ
你可能会说
消息队列不是 Kafka 就行了吗?
成熟的消息代理,重路由和可靠投递支持复杂路由、优先级、延迟和死信;吞吐不如 Kafka,但单条消息的可控性更强,业务解耦很常见。
也常被叫作AMQP消息队列
什么时候选它
- 业务解耦、任务队列、延迟与重试消息
- 需要复杂路由、优先级、死信队列
- 消息量中等、要求低延迟
什么时候别选
- 日志 / 埋点级别的高吞吐流(Kafka / Pulsar)
- 需要长期保留并回放历史消息
- 团队不愿维护 Erlang 集群
容易混在一起 · 怎么分
RabbitMQ≠Kafka
RabbitMQ 适合业务消息和复杂路由;Kafka 适合高吞吐事件流、日志和可回放的数据管道。
Q面试会问什么
- 问:怎么保证不丢?
答:生产者 confirm + 队列和消息持久化 + 消费者手动 ack,三处都做到才不丢。 - 问:和 Kafka 的区别?
答:RabbitMQ 推模型、消费后删除、路由灵活;Kafka 拉模型、分区顺序、可回放。
延伸阅读 · 权威出处