面试连环炮系列(二十?四):为什么选择RocketMQ

Posted xiaoyangjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试连环炮系列(二十?四):为什么选择RocketMQ相关的知识,希望对你有一定的参考价值。

  1. 为什么选择RocketMQ,而不是其他MQ

    1. 性能:阿里支撑,经受住淘宝,天猫双11重重考验;性能高;可靠性好;可用性高;易扩展。
    2. 功能:功能完善,我们需要的功能基本都够满足,如:事务消息,消息重试,死信队列,定时消息等。
    3. 易用:跨平台:跨语言,多协议接入(支持HTTP, MQTT, TCP协议,支持Restful风格HTTP收发消息)。
  2. RocketMQ 由哪些角色组成

    1. 生产者(Producer):负责产生消息,生产者向消息服务器发送由业务应用程序系统生成的消息。
    2. 消费者(Consumer):负责消费消息,消费者从消息服务器拉取信息并将其输入用户应用程序。
    3. 消息服务器(Broker):是消息存储中心,主要作用是接收来自 Producer的消息并存储, Consumer 从这里取得消息。
    4. 名称服务器(NameServer):用来保存 Broker 相关 Topic 等元信息并给 Producer ,提供 Consumer 查找Broker信息。
  3. 说说你对消费者的了解

    1. 获得 Topic-Broker 的映射关系。consumer 启动时需要指定 Namesrv 地址,与其中一个 Namesrv 建立长连接。消费者每隔 30 秒从 Namesrv 获取所有Topic 的最新队列情况,
      Consumer 跟 Broker 是长连接,会每隔 30 秒发心跳信息到Broker。
    2. 消费者端的负载均衡。根据消费者的消费模式不同,负载均衡方式也不同。
  4. 消费者消费模式有几种

    1. 集群消费:一个 Consumer Group 中的各个 Consumer 实例分摊去消费消息,即一条消息只会投递到一个 Consumer Group 下面的一个实例。
    2. 广播消费:消息将对一个Consumer Group 下的各个 Consumer实例都投递一遍。即使这些 Consumer 属于同一个Consumer Group ,消息也会被 Consumer Group 中的每个 Consumer 都消费一次。

参考(部分摘抄的文字版权属于原作者):

https://blog.csdn.net/pzq915981048/article/details/88971356
https://blog.csdn.net/huayushuangfei/article/details/80866642



以上是关于面试连环炮系列(二十?四):为什么选择RocketMQ的主要内容,如果未能解决你的问题,请参考以下文章

面试连环炮系列:说说Atomiclnteger的使用场景

Handler有多深?连环二十七问

Handler有多深?连环二十七问

面试连环炮系列:服务器CPU飙升100%怎么排查

面试题系列:Linux 夺命连环5问

美团面试:Java异常14连环炮,附答案