R

RocketMQ 面试题

连载中

RocketMQ 面试题:消息存储与刷盘、顺序消息、事务消息、重试积压与高可用。

5 篇文章 开始阅读

教程目录

1

RocketMQ 的整体架构?

一、四大角色 Producer:消息生产者。 Consumer:消息消费者,支持 Push/Pull 两种模式。 NameServer:路由注册中心,无状态,可集群部署,节点间不通信。 Broker:消息存储与转发,可主从部署。 二、工作流程 NameServer 启动,Broker 启动后向所有

2

RocketMQ 支持哪些消息类型?

一、普通消息 最基本的消息,发完即走。 二、顺序消息 同一队列内消息严格有序。发送时用 MessageQueueSelector 把同一业务 key 的消息发到同一队列,消费时同一队列只一个线程消费。 三、延迟消息 消息发送后延迟一段时间才投递。RocketMQ 支持固定延迟级别(1s/5s/10s

3

RocketMQ 如何保证消息不丢?

一、生产端不丢 同步发送:等待 Broker ACK,失败重试。 开启重试机制:retryTimesWhenSendFailed。 事务消息保证本地事务与消息发送一致。 二、Broker 不丢 同步刷盘:消息写入磁盘才返回成功(flushDiskType=SYNC_FLUSH)。 同步复制:主从都写

4

RocketMQ 和 Kafka 的区别?

一、对比 维度 RocketMQ Kafka 开发语言 Java Java/Scala 消息模型 Topic/Queue Topic/Partition 顺序消息 支持 支持(分区内) 延迟消息 支持 不原生支持 事务消息 支持 不支持 吞吐量 十万级 百万级 适用场景 业务消息、事务 日志、大数据

5

RocketMQ 的集群消费和广播消费?

一、集群消费(CLUSTERING) 同一条消息只被消费组内的一个消费者消费。 负载均衡:队列在消费者之间分配。 实际生产中最常用。 二、广播消费(BROADCASTING) 同一条消息被消费组内所有消费者都消费一次。 每个消费者都消费全量消息。 适用于需要所有节点都处理的场景,如配置刷新、缓存失效