RabbitMQ-基础问答整理

RabbitMQ技术原理 知识问答

下面内容,为本人在职期间经历RabbitMQ培训后,由公司前辈给出的一系列提问问题。本人根据问题,事后经过整理和查询逐条亲自做的参考回答。在此先敬谢前辈。
部分答案是自己搜索的,可能存在不准确的。

  1. RabbitMQ 是由哪种语言开发的?
  • erlang
  1. RabbitMQ 支持的消息推送方式有哪几种?
  • 点对点和发布订阅
  1. RabbitMQ 依赖哪种机制,实现多个节点的队列数据同步?
  • 镜像队列
  1. RabbitMQ 的应用场景有哪些?
  • 应用解耦、流量削峰、发布订阅、异步处理
  1. RabbitMQ Exchange type包含哪几类?
    f- anout、direct、headers、topic
  2. RabbitMQ 消息包含哪两部分?
  • 消息包含Header和Body,Header中包含消息自定义参数数据,body是具体的消息内容
  1. RabbitMQ 点对点消息发送,发送者直接将消息发送至Queue,消费者从Queue消费消息,是否正确?
  • 并不是直接推送到queue,而是先发送至对应的Exchange,然后由Exchange根据不同策略推送到指定的队列
  1. RoutingKey和BindingKey有什么关系?
  • RoutingKey是存储在消息中,BindingKey存储在MQ中。
  • Exchange在与多个Message Queue发生Binding后会生成一张路由表,路由表中存储着Message Queue所需消息的限制条件,即Binding Key。
  • 当Exchange收到Message时会解析其Header得到Routing Key。
  • Exchange根据Routing Key与Exchange Type将Message路由到Message Queue。
  1. RabbitMQ中保存消息的是:Exchange、Queue、Channel?
  • 并不是直接推送到queue,而是先发送至对应的Exchange,然后由Exchange根据不同策略推送到指定的队列。
  1. RabbitMQ 消费确认机制ACK,分为哪两种 ?
  • 手工,和自动的。手工确认是消息被消费者接收到以后,消费者发送ACK请求给RabbitMQ,RabbitMQ会将消息从RabbitMQ删除
  1. abbitMQ 镜像队列的选举机制,如果master失效,选择哪个节点作为master?如果slave节点失效,有什么影响?
  • 若master节点失效,则 镜像队列会自动选举出一个节点(slave中消息队列最长者)作为master,作为消息消费的基准参考。若slave节点失效,镜像队列集群中其他节点的状态无需改变。
  1. RabbitMQ 的最小权限管理单位是什么?
  • VIRTUAL HOST
  1. RabbitMQ 镜像同步策略,如果要给EC前缀的队列添加镜像,镜像策略匹配模式是什么?
  • 镜像的配置是通过 policy 策略的方式
    在这里插入图片描述
  • all 所有的节点都将被同步
  • exactly 指定个数的节点被同步
  • nodes 指定的名称的节点被同步
  1. RabbitMQ 事务分为三个阶段?
  • txSelect 用于将channel设置成事务模式 txCommit 提交事务 txRollBack 回滚事务
  1. RabbitMQ Connection和Channel的关系?
  • channel是依赖connection存在,connection是客户端与RabbitMQ之间建立的TCP连接。
  1. 使用TaskSender执行消息发送,如何实现?
  • Step1. 添加程序集引用:
    在这里插入图片描述
  • Step2. 获取任务发送者服务:
    在这里插入图片描述
  • Step3. 构造失败重试任务:
    在这里插入图片描述
  • Step4. 同步/异步发送提交任务:
    在这里插入图片描述
  • 完整:
    在这里插入图片描述

考后错题笔记

考试名称:RabbitMQ技术原理考试

分数:81(计分制:百分制)

考试时间:2018-09-06
17:00—2018-09-06 17:26

  • RabbitMQ的消息持久化依赖于( )? (C)×0.0分
    A. AutoDelete B.Durabl C. Exclusive
    正确答案:B
  • RabbitMQ 消息确认ACK分为自动确认和手动确认两种,对于自动确认,如果消息被消费者接收成功,那么该消息在RabbitMQ中是否仍然存在( )?(B)√3.0分
    A. 存在 B. 不存在
  • Virtual Host是RabbitMQ的基本权限管理单位,可以在一个Virtual Host中新建两个名称相同的队列?(B)√3.0分
    A. 正确 B. 错误
  • RabbitMQ消息被一个消费者接收,但未处理,另外一个消费者可以获取该消息处理( )?(A)×0.0分
    A. 正确 B. 错误
    正确答案:B
  • RabbitMQ 队列名称不区分大小写?(A)×0.0分
    A. 正确 B. 错误
    正确答案:B

猜你喜欢

转载自blog.csdn.net/long870294701/article/details/84312101
今日推荐