消息中间件面试题

1.RabbitMQ如何保证消息不丢失

  • 生产者确认机制
  • 持久化
  • 消费者确认机制
  • 消费者失败重试机制

2.RabbitMQ消息重复消费问题如何解决

  • 解决方案:
    • 每个消息设置唯一标识id
    • 幂等方案(分布式锁,数据库锁(悲观锁,乐观锁))

3.RabbitMQ延迟队列(死信交换机)了解过吗

  • 死信
    • 消费者声明消费失败,并且消息的requeue参数设置为false
    • 消息是一个过期消息,超时无人消费
    • 要投递的队列消息堆积满了,最早的消息可能为死信
  • 死信交换机:给队列设置了dead-letter-exchange属性,指定了一个交换机,那么队列中的死信就会投递到这个交换机中,这个交换机称为死信交换机
  • TTL(Time-To-Live):消息存活时间,一个队列中TTL结束仍未消费,则变成死信
    • 消息所在的队列设置了存活时间
    • 消息本身设置了存活时间
  • 延迟队列插件:DelayExchange,
    • 可给交换机设置delayed属性,声明延迟交换机
    • 发消息添加x-delay头,值为超时时间

4.RabbitMQ有消息堆积怎么解决

  • 解决方案:
    • 提高消费者的消费能力 ,可以使用多线程消费任务
    • 增加更多消费者,提高消费速度
    • 扩大队列容积,提高堆积上限
    • 使用惰性队列,特点如下:
      • 接收到消息后直接存入磁盘而非内存,支持数百万条的消息存储
      • 消费者要消费消息时才会从磁盘中读取并加载到内存
      • 性能稳定但基于磁盘存储,受限于磁盘IO,时效性降低

5.RabbitMQ高可用机制

  • 普通集群
  • 镜像集群
  • 冲裁集群
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖阳爱学计算机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值