2024年最全05-RabbitMQ 面试题(1),作为一个大数据开发程序员你还不会JetPack

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

场景:

  1. 异步发送(验证码、短信、邮件…)
  2. MySQL和Redis , ES之间的数据同步
  3. 分布式事务
  4. 削峰填谷

消息发送者(publisher )把消息发送给交换机(exchange),由交换机路由到队列,最后由消费者(consumer)进行消费消息。

出现消息丢失的四种情况:

  1. 消息未到达交换机
  2. 消息未到达队列
  3. 队列中消息丢失
  4. 消费者未接收到消息

生产者确认机制(解决消息未到达交换机、消息未到达队列问题)

RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果(ack)给发送者,表示消息是否处理成功

如果消息发送失败,有两种情况:

  1. 消息到达交换机失败(publisher-confirm nack)
  2. 交换机路由到队列失败(publisher-return ack)

消息失败之后如何处理呢?

  1. 回调方法即时重发(知道哪一个消息发送失败,可以再发)
  2. 记录日志(如果还是发送失败,可以记录日志,通过查看日志进行补偿)
  3. 保存到数据库然后定时重发,成功发送后即刻删除表中的数据

如果重发失败了怎么办?

  1. 一般消息发送失败了,很大几率是服务提供者宕机了或者是MQ宕机了,这两者不可能一直处于宕机状态。
  2. 如果还是不能解决,需要人工来解决这些问题

消息已经正常发送到队列,但是MQ 宕机了,也会导致消息丢失,该怎么解决?

消息持久化(解决队列中消息丢失问题**)**
MQ默认是内存存储消息,开启持久化功能可以确保缓存在MQ中的消息不丢失。(MQ宕机或重启后,在内存中的消息肯定会丢失,需要持久化
1.交换机持久化:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

需要这份系统化资料的朋友,可以戳这里获取

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值