面试
简单总结就是满足其 轻量级 和高性能 的需求、以及 降低外部依赖 的 和 定制化的需求的特性。由于 Zookeeper 是一 个强一致性适合需要分布式锁和选举机制的场景。
1)消费者主动拒绝消息。调用 basic.reject 或 basic.nack 时把 requeue设为false,消息就不会重新入队,直接丢给死 信交换机。
2)消息过期了还没被消费。RabbitMQ 支持给消息或队列设置TTL,比如设置30秒,30秒内没人消费,这条消息就变成死 信被转走。
3)队列满了装不下。队列设置了x-max-length或 x-max-length-bytes 限制后,新消息进来时如果超出容量,队头最老的消 息会被挤到死信交换机。