本文目录如下:
RabbitMQ面试题 (总结最全面的面试题)
入门RabbitMQ消息队列,看这篇文章就够了
RabbitMQ — 基础 RabbitMQ 知识
一、消息队列
什么是消息队列 (消息中间件)?
消息队列
(Messaeg Queue) 是一种使用 队列(Queue) 作为底层存储数据结构,可用于解决 不同进程与应用 之间通讯的 分布式消息容器。- 支持多种 消息传递模式,如 点对点、发布/订阅等。
- 目前使用得比较多的消息队列有:**
RocketMQ
、RabbitMQ
、ActiveMQ
、Kafka
**
消息队列 有哪些功能 (为什么要使用 消息队列)?
业务解耦
异步处理
:相比于传统的 串行、并行 方式,提高了 系统吞吐量。- **
流量削峰
**:通过 消息队列 控制请求量;可以缓解短时间内的 高并发请求。
消息队列 有什么缺点?
系统可用性降低
:消息队列 挂了,服务器 也会出问题。系统复杂度提高
:加入了 消息队列,要考虑 一致性问题、消息重复消费 等问题。- **
一致性问题
**:系统处理有可能造成数据不一致。
消息队列有哪些消息模型?
- **
队列模型
**:⼀个队列可以存储多个 生产者 的消息,也可以有多个 消费者。每条消息只能被 消费一次。- **
发布/订阅模型
**:消息的发送方称为 发布者,消息的接收方称为 订阅者,存放消息的容器称为 主题。每条消息可以被 多次消费。
二、RabbitMQ
什么是 RabbitMQ?
**
RabbitMQ
** 是用 Erlang语言 开发的一个实现了 AMQP协议 的 消息队列服务器,相比其他同类型的消息队列,最大的特点是:单机吞吐量、延时 方面非常出色。
为什么要选择RabbitMQ (RabbitMQ 和 RocketMQ 的区别)?
**
RabbitMQ
**:
- 优点:轻量,迅捷,容易部署和使用,拥有灵活的路由配置
- 缺点:性能和吞吐量不太理想,不易进⾏⼆次开发
**
RocketMQ
**:
- 优点:性能好,高吞吐量,稳定可靠,有活跃的中文社区
- 缺点:兼容性上不是太好
RabbitMQ 中主要包含哪几个部分 (核心概念)?
生产者 (Producer)
交换器 (Exchange)
: 接收来自 生产者 的消息,并根据路由键转发消息到所绑定的队列。消息队列 (Queue)
: 生产者 的消息最终发送到 指定队列,而 消费者 也是通过 订阅某个队列,达到 获取消息 的目的。消费者 (Consumer)
- Broker:接收和分发消息的应用,RabbitMQ Server 就是 Message Broker。
RabbitMQ 常用的工作模式有哪几种?
**
队列模式
:一个生产者** 和 多个消费者,但一条消息只能被一个消费者获取。
**
发布/订阅(pub/sub)模式
**
版权归原作者 页川叶川 所有, 如有侵权,请联系我们删除。