2020南京最新消息队列面试题

观众老爷们,大家好,我是正在学习的杨洋,这是今年5月份我遇到的一些消息队列面试点,后面我还会整理出别的面试点,求关注,嘿嘿,希望大家一起学习进步~

1.我在面试中被问到的问题

   这里呢,先抛出问题,希望大家在看的时候,脑袋里面能过一遍,给出你的回答:
  • 问题:
    • 你用过消息中间件么?
    • 你为什么使用MQ?
    • 使用了消息队列会有什么优缺点?
    • kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景?
    • 如何保证消息不被重复消费?
    • 如何解决丢数据的问题(生产者 中间件 消费者)?

2.我是如何回答的

    这边呢,我尽量说的详细点,如果有不清楚的地方,咱们可以评论区相互交流:

2.1 你用过消息队列么

考点:问你用没用过,没用过哪怕写过demo也好,如果你demo都没写过确实需要花时间了解下mq了;
回答: 项目用到的是kafka,我入职的时候就有了,在流程结束的时候要发送短信、邮件通知流程发起人,这边使用的是kafka。

2.2 你为什么使用MQ

考点:你知道不知道你系统里为什么要用消息队列这个东西,要有自己的思考过程;
回答: 我们的是一个流程结束的时候要异步发送短信、邮件通知流程发起人。选择kafka的原因是流程结束的时候我们在这个结束的方法里面做一些业务,而业务的有的比较复杂,处理要花点时间,就想着把发短信、邮件的功能异步的去处理。

(ps:主要是因为流程是领导级别的审批,点了结束的按钮半天没反应,我们经理估计第二天就要挨批了)

2.3 使用了消息队列会有什么优缺点

考点:既然用了消息队列这个东西,你得知道用了有什么好处、坏处;
回答: 消息队列的核心 好处 有3个:解耦、异步、削峰,
坏处 也不少: 系统可用性降低、系统复杂性提高、一致性问题。

2.4 kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景

考点:这几种都是常见的mq,你得知道他们的不同之处吧;
回答: 这我就得画个表格说说了

特性ActiveMQRabbitMQRocketMQKafka
单机吞吐量万级万级10万级10万级
时效性ms级微秒级ms级ms级以内
可用性高,基于主从架构实现高可用性高,基于主从架构实现高可用性非常高,分布式架构非常高,kafka是分布式的,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用
消息可靠性有较低的概率丢失数据经过参数优化配置,可以做到0丢失经过参数优化配置,可以做到0丢失
优劣势总结偶尔会有较低概率丢失消息,而且现在社区以及国内应用都越来越少,较少在大规模吞吐的场景中使用,跟朋友沟通的公司基本都不使用erlang语言开发,性能极其好,延时很低;而且开源提供的管理界面非常棒,用起来很好用;在国内一些互联网公司近几年用rabbitmq也比较多一些;不过吞吐量稍低接口简单易用,而且毕竟在阿里大规模应用过,有阿里品牌保障日处理消息上百亿之多,可以做到大规模吞吐,性能也非常好,就是社区活跃度相对较为一般,你得做好这个技术万一被抛弃社区黄掉的风险虽然仅仅提供较少的核心功能,但是提供超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展 ,kafka唯一的一点劣势是有可能消息重复消费,适合大数据实时计算以及日志收集

2.5 如何保证消息不被重复消费&&如何解决丢数据的问题

这一块内容较多,准备后面单独写一篇文章

总结

  1. ActiveMQ 从我工作以来,没使用过,跟朋友平时聊天,基本没听到过这个中间件的使用,我个人不推荐用这个
  2. RabbitMQ,现在很多中小型公司喜欢使用,社区活跃度高,就是是erlang语言开发的,推荐
  3. RocketMQ,现在用的也不少,就怕社区突然黄掉,像之前的dubbo,最大的优势是经过海量的数据考验
  4. Kafka用于大数据领域的实时计算、日志采集等场景,社区活跃度很高,世界公认的,绝对没问题

稍微讲了点就这么多了,如果大家对上面的有什么想法的欢迎留言讨论啊~杨洋我祝大家身体健康,平安喜乐,溜了…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值