1. 消息队列基础
为什么使用MQ?优点?常用场景?
使用MQ有什么缺点?
Kafka、ActiveMQ、RabbitMQ、RocketMQ 的区别?
消息队列如何选型?
MQ 有哪些常见问题?如何解决这些问题?
依托消息中间件如何实现异步?
2. RocketMQ精选面试题
RocketMQ由哪些角色组成,每个角色作用和特点是什么?
RocketMQ中的Topic和JMS的queue有什么区别?
RocketMQ Broker中的消息被消费后会立即删除吗?
RocketMQ消费模式有几种?
RocketMQ消息是push还是pull?
为什么要主动拉取消息而不使用事件监听方式?
Broker如何处理拉取请求的?
RocketMQ如何做负载均衡?
**producer端**
**consumer端**
当消费负载均衡consumer和queue不对等的时候会发生什么?
消息重复消费如何解决?
如何让 RocketMQ 保证消息的顺序消费?
怎么保证消息发到同一个queue?
RocketMQ如何保证消息不丢失?
Producer端如何保证消息不丢失
Broker端如何保证消息不丢失
Consumer端如何保证消息不丢失
RocketMQ的消息堆积如何处理?
如果Consumer和Queue不对等,上线了多台也在短时间内无法消费完堆积的消息怎么办?
堆积消息会超时删除吗?
堆积的消息会不会进死信队列?
RocketMQ 在分布式事务支持这块机制的底层原理?
高吞吐量下如何优化生产者和消费者的性能?
RocketMQ 是如何保证数据的高容错性的?
任何一台Broker突然宕机了怎么办?
Broker把自己的信息注册到哪个NameServer上?
RocketMQ如何分布式存储海量消息的?
任何一台 Broker 突然宕机了怎么办?还能使用吗?消息会不会丢?
怎么知道有哪些 Broker ?如何知道要连那个Broker?
NameServer到底可以部署几台机器?为什么要集群化部署?
系统如何从NameServer获取Broker信息?
如果Broker宕了,NameServer是怎么感知到的?
Broker挂了,系统是怎么感知到的?
Master Broker 是如何将消息同步给 Slave Broker 的?
消费消息时是从Master获取还是Slave获取?
如果 Slave Broker 挂掉了,会对整个系统有影响吗?
Master Broker 突然挂了,这样会怎么样?
短连接轮询、长连接、长轮询