MQ进阶面试题

目录

一、用到过消息队列吗?为什么要用消息队列?

二、消息队列有哪些优点和缺点?

三、常见的几种消息队列分别有什么区别以及都分别适用哪些场景?

四、如何保证消息队列的高可用和可靠性?

五、聊一聊消息队列的持久性?

六、如何保证消息不被重复消费(幂等性)?

七、如何保证消息不丢失或者可靠性传输?消息丢了怎么办?

八、如何保证消息的顺序性?

九、如何解决消息队列的延时以及过期失效问题?

十、消息队列满了该怎么处理?有几百万个消息被积压了几个小时,说说如何解决?

十一、如何设计一个高可用的消息队列?


一、用到过消息队列吗?为什么要用消息队列?

        结合使用场景来回答,例如:通过异步的方式给下游系统卷积状态数据呀;消息队列可以用来解耦/异步/削峰;

二、消息队列有哪些优点和缺点?

       缺点:1)、系统可用性降低:如果MQ一旦故障了,那么消息提供者和消费者无法发送和消费消息,整个系统就崩了。 (如何保证高可用);2)、系统复杂性增加:不仅要考虑我们的系统,也要考虑到MQ,重复消费、消息丢失、提供消息失败,多次给MQ发送消息,消息顺序,消费者系统挂了MQ堆积了很多消息;3)、一致性问题。

        优点:解耦、异步、削峰

三、常见的几种消息队列分别有什么区别以及都分别适用哪些场景?

           下面将从吞吐量/时效性/可用性等几个方面来比较4款MQ;

特性activeMQrabbitMQrocketMQkafka
吞吐量万级万级十万级十万级, kafka最大优点,一般用在实时数据计算、日志采集等等场景
时效性Ms级微秒级Ms级Ms级
可用性

高,

基于主从架构实现高可用

非常高,分布式架构非常高,分布式架构,一个数据多个副本,少数机器宕机,不会丢失消息,不会导致不可用
消息可靠性存在丢失可能性经过参数优化配置,可以做到0丢失
核心特性支持高并发,性能好,低延迟分布式便于拓展分布式便于拓展,功能较为简单,在大数据领域应用较多
优劣势总结

非常成熟,功能强大,

缺点:会出现低概率的消息丢失

性能好,管理界面丰富,互联网公司应用较多

缺点:集群不支持动态拓展

简单易用,性能好,社区活跃

缺点:部分内容未开元

快速持久化:

高吞吐:

高堆积:

缺点:消息重复

四、如何保证消息队列的高可用和可靠性?

五、聊一聊消息队列的持久性?

六、如何保证消息不被重复消费(幂等性)?

七、如何保证消息不丢失或者可靠性传输?消息丢了怎么办?

八、如何保证消息的顺序性?

九、如何解决消息队列的延时以及过期失效问题?

十、消息队列满了该怎么处理?有几百万个消息被积压了几个小时,说说如何解决?

        新建一个topic,数量是原来的10倍,通过修改一个customer,将原本入库的消息,写到新的topic中,再将部署10倍的customer去消费这个topic中的消息。

十一、如何设计一个高可用的消息队列?

答:我从以下四个方面考虑设计:1)、可拓展性;2)、消息持久化;3)、消息零丢失;4)、高可用;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值