MQ-面试

作者: 天凉好个秋灬 | 来源:发表于2020-04-05 12:41 被阅读0次

目的

解耦、异步、削峰

问题

  • 系统可用性降低,增加了mq环节,mq挂掉导致整个系统挂掉
  • 系统复杂度提高,需要针对mq增加各种考虑
  • 一致性问题

比较

ActiveMQ RabbitMQ RocketMQ Kafka
吞吐量 万级吞吐量 万级吞吐量 十万级吞吐量 十万级吞吐量
topic对吞吐量的影响 topic可以达到几百,几千个的级别时吞吐量会有较小幅度的下降 topic从几十到几百的时候,吞吐量会大幅下降,所以同等机器下,保证topic数量不要过多
响应 ms级响应 微秒级响应,延迟最低 ms级响应 ms级响应
高可用 高可用,基于主从架构实现 高可用,基于主从架构实现 非常高,分布式架构 非常高,分布式架构,一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用
数据安全 较低概率丢失消息 一般不会丢失消息 经过参数优化配置,可以做到0丢失 经过参数优化配置,可以做到0丢失
功能 MQ领域的功能极其完备 基于erlang开发,并发能力很强,性能及其好,延时很低,MQ领域的功能比较完备 MQ功能较为完备 功能很简单,简单的MQ功能,在大数据领域的实时计算以及日志采集被大规模使用,是事实上的的标准
总结 非常成熟,业内大量公司使用,但是社区不活跃,版本越来越少,主要基于解耦与异步来用,很少用于大规模吞吐的场景 开源管理管理系统非常好用,社区比较活跃,更新维护频繁,国内近几年用的比较多,但因为是erlang开发,普通公司玩不转,吞吐量只有万级 接口易用,阿里开源,品质保障,社区活跃,支持复杂的业务场景,吞吐量特别大,分布式架构,但会有项目黄了的风险 功能少,吞吐量超高,易于拓展

高可用

RabbitMQ

  1. 单机模式
    • demo级别,本地启动玩玩
  2. 普通集群模式
    • 多台机器上启动多个实例,每个机器上一个,但是创建的queue只会放在一个实例上,其他实例只同步这个queue的元数据
    • 缺点:可能会在集群内部产生大量数据的传输,可用性没有保障,queue所在节点宕机,queue里的数据就会丢失
  3. 镜像集群模式
    • 实现高可用,每个实例都会同步queue的全部信息
    • 缺点:性能开销太大,没有扩展性可言,网络压力和消耗很重
    • 管理控制台,可以增加策略,按照镜像集群模式开始

Kafka

  1. 没台机器启动一个borker进程,可以认为是Kafka的一个节点
  2. 按照topic划分partition,实现分布式
  3. leader、follower、replica副本机制、选举,保证高可用

相关文章

  • MQ-面试

    目的 解耦、异步、削峰 问题 系统可用性降低,增加了mq环节,mq挂掉导致整个系统挂掉 系统复杂度提高,需要针对m...

  • MQ-面试题

    1.mq优缺点 优点:解耦,削峰,异步缺点:系统复杂度高(考虑一致性,重复消费,消息丢失) 2. kafka,ac...

  • Spring Boot 集成 RabbitaMQ-确认消息

    springBoot-rabbit MQ-设置手动确认ACK-Channel shutdown异常 Spring ...

  • 如何优雅的使用MQ-详述功能场景

    消息队列(MQ)是一种不同应用程序之间(跨进程)的通信方法。应用程序通过写入和检索出入列队的数据(消息)来通信,而...

  • 面试者

    面试面试面试

  • 行为性面试 #3.1.9

    面试主要分类 按面试内容:结构化面试、非结构化面试、半结构面试。 按面试中提问类型:行为性面试、情景性面试、动机面...

  • 面试的构成要素

    面试要素是指构成任何一次面试活动必不可少的基本因素。面试因素有10个:面试目的、面试内容、面试方法、面试考官、面试...

  • 面试材料

    面试经验 面试题1 面试题2 面试题3 面试题4 面试题5 面试题6――数据结构 面试题7――网络 面试题8――汇...

  • 测评工具

    一、笔试/机考 针对专业性强岗位 二、面试 电话面试/视频面试/技术面试/HR面试/综合面试 1.半结构化面试:面...

  • 面试面试面试伤神伤神

    面试面试面试伤神伤神

网友评论

      本文标题:MQ-面试

      本文链接:https://www.haomeiwen.com/subject/uvhuphtx.html