参考答案
RocketMQ 有4种部署类型
1 单 Master
单机模式: 即只有一个 Broker, 如果 Broker 宕机了, 会导致 RocketMQ 服务不可用, 不推荐使用。
2 多 Master 模式
组成一个集群,集群每个节点都是 Master 节点,配置简单,且性能最高, 某节点宕机重启,都不会影响 RocketMQ 服务。
其缺点是如果某个节点宕机了, 会导致该节点存在未被消费的消息,在节点恢复之前不能被消费。
3 多 Master 多 Slave 模式,异步复制
每个 Master 配置一个 Slave ,多对 Master-Slave、Master 与 Slave 消息采用异步复制方式,主从消息一致只会有毫秒级的延迟。
优点:
弥补了多 Master 模式(无 slave )下、节点宕机后在恢复前不可订阅的问题。在 Master 宕机后, 消费者还可以从 Slave 节点进行消费,采用异步模式复制,提升了一定的吞吐量。
简单总结:采用多 Master 多 Slave 模式,异步复制模式进行部署,系统将会有较低的延迟和较高的吞吐量。
缺点:
如果 Master 宕机, 磁盘损坏的情况下, 如果没有及时将消息复制到 Slave , 会导致有少量消息丢失。
4 多 Master 多 Slave 模式,同步双写
与多 Master 多 Slave 模式,异步复制方式基本一致,唯一不同的是消息复制采用同步方式,只有master 和 slave 都写成功以后,才会向客户端返回成功。
优点:
数据与服务都无单点,Master 宕机情况下,消息无延迟,服务可用性与数据可用性都非常高
缺点:
会降低消息写入的效率,并影响系统的吞吐量。
实际部署中,一般会根据业务场景的所需要的性能和消息可靠性等方面来选择后两种。
以上,是消息队列 RocketMQ 面试题【RocketMQ 有哪几种部署类型?分别有什么特点?】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—