导航菜单
首页 >  房屋构造自考题及答案  > RabbitMQ常见面试题及答案 90道(最新版)持续更新

RabbitMQ常见面试题及答案 90道(最新版)持续更新

RabbitMQ面试题以及答案整理【最新版】RabbitMQ高级面试题大全(2021版),发现网上很多RabbitMQ面试题都没有答案,所以花了很长时间搜集,本套RabbitMQ面试题大全

很长时间,没有更新RabbitMQ了,这次来擦屁股了,搞一些新总结的

如果不背 RabbitMQ 面试题的答案,肯定面试会挂!

已经整理成7000多页,面试手册PDF版已经整理成7000多页,面试手册PDF版https://mp.weixin.qq.com/s/TMBjoux5tpcqmbEFR-pDrA

这套RabbitMQ面试题大全,希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的 新总结:集群中的节点类型?

内存节点:ram,将变更写入内存。

磁盘节点:disc,磁盘写入操作。

RabbitMQ要求最少有一个磁盘节点。

 新总结:集群节点类型有几种?

内存节点:保存状态到内存,但持久化的队列和消息还是会保存到磁盘;

磁盘节点:保存状态到内存和磁盘,一个集群中至少需要一个磁盘节点

 新总结:Consumer Cancellation Notification 机制用于什么场景?

用于保证当镜像 queue 中 master 挂掉时,连接到 slave 上的 consumer 可以收到自身 consume 被取消的通知,进而可以重新执行 consume 动作从新选出的 master 出获得消息。若不采用该机制,连接到 slave 上的 consumer 将不会感知 master 挂掉这个事情,导致后续无法再收到新 master 广播出来的 message 。另外,因为在镜像 queue 模式下,存在将 message 进行 requeue 的可能,所以实现 consumer 的逻辑时需要能够正确处理出现重复 message 的情况。

 新总结:消息传输保证层级?

1、 At most once:最多一次。消息可能会丢失,单不会重复传输。

2、 At least once:最少一次。消息觉不会丢失,但可能会重复传输。

3、 Exactly once:恰好一次,每条消息肯定仅传输一次。

 新总结:事务机制?

RabbitMQ 客户端中与事务机制相关的方法有三个:

channel.txSelect 用于将当前的信道设置成事务模式。

channel 、txCommit 用于提交事务 。

channel 、txRollback 用于事务回滚,如果在事务提交执行之前由于 RabbitMQ 异常崩溃或者其他原因抛出异常,通过txRollback来回滚。

 新总结:如何避免消息重复投递或重复消费?

在消息生产时,MQ内部针对每条生产者发送的消息生成一个inner-msg-id,作为去重和幂等的依据(消息投递失败并重传),避免重复的消息进入队列;在消息消费时,要求消息体中必须要有一个bizId(对于同一业务全局唯一,如支付ID、订单ID、帖子ID等)作为去重和幂等的依据,避免同一条消息被重复消费。

这个问题针对业务场景来答分以下几点:

1、 拿到这个消息做数据库的insert操作。然后给这个消息做一个唯一主键,那么就算出现重复消费的情况,就会导致主键冲突,避免数据库出现脏数据。

2、 拿到这个消息做Redis的set的操作,因为你无论set几次结果都是一样的,set操作本来就算幂等操作。

3、 如果上面两种情况还不行。准备一个第三方介质,来做消费记录。以Redis为例,给消息分配一个全局id,只要消费过该消息,将以K-V形式写入Redis。那消费者开始消费前,先去Redis中查询有没消费记录即可。

 新总结:routing_key 和 binding_key 的最大长度是多少?

255 字节。

新总结:abbitMQ消息确认过程? 消费者收到的每一条消息都必须进行确认(自动确认和自行确认)消费者在

相关推荐: