activemq中怎么知道推送消息是否成功_消息队列面试,你能顶得住面试官这波10大连环炮的攻势吗?...

6a1b6f394daac44ea180b5c9a05637c4.png

01 消息队列面试场景

(面试官在你的简历上面看到了,呦,有个亮点,你在项目里用过 MQ,比如说你用过 ActiveMQ)

1.1 面试官:你在系统里用过消息队列吗?(面试官在随和的语气中展开了面试)

候选人:用过的(此时感觉没啥)

1.2 面试官:那你说一下你们在项目里是怎么用消息队列的?

候选人:巴拉巴拉,“我们啥啥系统发送个啥啥消息到队列,别的系统来消费啥啥的。比如我们有个订单系统,订单系统每次下一个新的订单的时候,就会发送一条消息到 ActiveMQ 里面去,后台有个库存系统负责获取消息然后更新库存。”

(部分同学在这里会进入一个误区,就是你仅仅就是知道以及回答你们是怎么用这个消息队列的,用这个消息队列来干了个什么事情?)

1.3 面试官:那你们为什么使用消息队列啊?你的订单系统不发送消息到 MQ,直接订单系统调用库存系统一个接口,咔嚓一下,直接就调用成功,库存不也就更新了。

候选人:额。。。(楞了一下,为什么?我没怎么仔细想过啊,老大让用就用了),硬着头皮胡言乱语了几句。

(面试官此时听你楞了一下,然后听你胡言乱语了几句,开始心里觉得有点儿那什么了,怀疑你之前就压根儿没思考过这问题)

1.4 面试官:那你说说用消息队列都有什么优点和缺点?

(面试官此时心里想的是,你的 MQ 在项目里为啥要用,你没怎么考虑过,那我稍微简单点儿,我问问你消息队列你之前有没有考虑过如果用的话,优点和缺点分别是啥?)

候选人:这个。。。(确实平时没怎么考虑过这个问题啊。。。胡言乱语了)

(面试官此时心里已经更觉得你这哥儿们不行,平时都没什么思考)

1.5 面试官:Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?

(面试官问你这个问题,就是说,绕过比较虚的话题,直接看看你对各种 MQ 中间件是否了解,是否做过功课,是否做过调研)

候选人:我们就用过 ActiveMQ,所以别的没用过。。。区别,也不太清楚。。。

(面试官此时更是觉得你这哥儿们平时就是瞎用,根本就没什么思考,觉得不行)

1.6 面试官:那你们是如何保证消息队列的高可用啊?

候选人:这个。。。我平时就是简单走 API 调用一下,不太清楚消息队列怎么部署的。。。

1.7 面试官:如何保证消息不被重复消费啊?如何保证消费的时候是幂等的啊?

候选人:啥?(MQ 不就是写入&消费就可以了,哪来这么多问题)

1.8 面试官:如何保证消息的可靠性传输啊?要是消息丢失了怎么办啊?

候选人:我们没怎么丢过消息啊。。。

1.9 面试官:那如何保证消息的顺序性?

候选人:顺序性?什么意思?我为什么要保证消息的顺序性?它不是本来就有顺序吗?

1.10 面试官:如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

候选人:不是,我这平时没遇到过这些问题啊,就是简单用用,知道 MQ 的一些功能。

1.11 面试官:如果让你写一个消息队列,该如何进行架构设计啊?说一下你的思路。

候选人:。。。。。我还是走吧。。。。

接下来介绍一些 ActiveMQ、RabbitMQ、消息中间件面试过程中常备的一些问题+解析,需要完整版解析的朋友可以点击【“ActiveMQ、RabbitMQ、消息中间件”】 免费领取

02 ActiveMQ面试必备题+解析

  • 什么是 ActiveMQ?
  • ActiveMQ 服务器宕机怎么办?
  • 丢消息怎么办?
  • 持久化消息非常慢
  • 消息的不均匀消费。
  • 死信队列。
  • ActiveMQ 中的消息重发时间间隔和重发次数吗?

答案解析:ActiveMQ

ed51cfe381a0b28dc2071d0da09f2be5.png

03 RabbitMQ面试必备题+解析

  • RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
  • 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
  • RAM node 和 disk node 的区别?
  • RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
  • RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
  • vhost 是什么?起什么作用?
  • 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
  • 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
  • cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
  • 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么?
  • 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  • 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
  • routing_key 和 binding_key 的最大长度是多少?
  • RabbitMQ 允许发送的 message 最大可达多大?
  • 什么情况下 producer 不主动创建 queue 是安全的?
  • “dead letter”queue 的用途?
  • 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
  • 什么情况下会出现 blackholed 问题?
  • 如何防止出现 blackholed 问题?
  • Consumer Cancellation Notification 机制用于什么场景?
  • Basic.Reject 的用法是什么?
  • 为什么不应该对所有的 message 都使用持久化机制?
  • RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?

答案解析:RabbitMQ

d5f982f152b05dafc804ef01d3ede42b.png

04 消息中间件面试必备+解析

  • activemq 的几种通信方式
  • activemq 如果数据提交不成功怎么办(消息丢失)
  • 如何解决消息重复问题
  • 大量的消息每页被消费,能否发生 oom 异常?
  • activeMQ 发送消息的方式有哪些?
  • activeMQ 如何调优
  • 什么是死信队列?
  • Basic.Reject 的用法是什么?
  • 为什么不应该对所有的 message 都使用持久化机制?
  • 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  • 向不存在的 exchange 发 publish 消息会发生什么?向不存在的queue 执行 consume 动作会发生什么?
  • 什么情况下 producer 不主动创建 queue 是安全的?
  • “dead letter”queue 的用途?
  • 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange具有 durable 属性,同时 message 具有 persistent 属性才行?

答案解析:消息中间件

1089b581ff28b0d909b31649efbf7a63.png

最后:

需要完整版ActiveMQ、RabbitMQ、消息中间件答案的朋友注意啦:点击下面的链接即可免费领取~~~

面试+学习笔记:RabbitMQ+ActiveMQ+消息中间件+Spring全家桶+MySQL等​shimo.im
c9bbc679faf4f5728dcd500e0c230764.png

另外还有更多的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC等免费分享给大家一起学习

5014289222f2a34b46fb7ef4e48efc08.png

还有最近整理的MySQL学习笔记+面试+性能优化+书籍

6fc5786a05caa3d94973411abdc263a9.png
面试+学习笔记:RabbitMQ+ActiveMQ+消息中间件+Spring全家桶+MySQL等​shimo.im
c9bbc679faf4f5728dcd500e0c230764.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值