RocketMQ常见面试题整理
MQ优缺点:优点:异步;解耦;削峰。
RocketMQ默认端口号:9876。RocketMQ三大功能:
缺点:系统可用性降低;系统复杂性提高;存在消息(数据)一致性问题。
消息可靠性分析:
普通消息-消息发送:
高可用实现:(采用异步刷盘,同步复制的多主多从模式的方式)
MVCC方案(多版本并发控制)&&去重表解决重复消息:
采用MMAP实现零拷贝:
零拷贝测试程序:服务端程序:
客户端程序:
拷贝占用时间计算对比:(CPU拷贝时间 > DMA拷贝时间)
RocketMQ mappedFile源码介绍:
RocketMQ性能优化:
3种MQ对比及特点
RocketMQ默认端口号:9876。先启动nameserver:nohup bin/nameserv &;再启动mqbroker:nohup bin/mqbroker -c conf/broker.conf &;可调用jps指令查看两个进程已启用。
消息发送者和消息消费者流程分析
消息消费者执行流程
消息生产者执行流程
顺序消息消费流程
执行日志
面试题
图灵学院-RocketMQ常见面试题汇总:https://www.bilibili.com/video/BV1iV4y1J7sU?p=1
1.MQ有什么用?有那些具体的使用场景?2.如何进行产品选型?3.如何保证消息不丢失?哪些环节会造成消息丢失?怎么去防止消息丢失?
4.如何保证消息消费的幂等性?
6.MQ如何保证消息顺序?7.MQ如何保证消息的可靠读写?(依靠零拷贝机制)8.MQ如何保证分布式事务的最终一致性?9.如何设计一个MQ?10.简述rabbitMq的架构设计?模型架构常见术语11.RabbitMQ如何确保消息发送?消息接收?12.RabbitMQ事务消息13.RabbitMQ死信队列、延时队列14.简述kafka架构设计?
16.kafka是pull?还是push?是pull。优劣势分析。17.kafka中zk的作用?(次要)18.kafka高性能的原因?(顺序写;零拷贝)
20.消息队列有那些作用?21.死信队列是什么?延时队列是什么?22.kafka为什么比rocketmq吞吐量要高?23.kafka的pull和push分别有什么优缺点?24.rocketmq的底层实现原理?25.消息队列如何保证消息可靠传输?
参考网络视频资料:(1)2022年分布式中间件面试题详解合集 | RocketMQ、RabbitMQ、Elasticsearch、Redishttps://www.bilibili.com/video/BV1Ru411177C?p=2
(2)RabbitMq一线大厂常见面试题分析(专题未看)https://www.bilibili.com/video/BV1Ru411177C?p=19
(3)Elasticsearch大厂面试都问了什么分析(专题未看)https://www.bilibili.com/video/BV1Ru411177C?p=27
(4)Redis分布式锁redisson框架实战(专题部分未看)https://www.bilibili.com/video/BV1Ru411177C?p=32
世界上最大的谎言,就是你不行;这是你想要走的路,也适合你;路还长,一切才刚刚开始!让世界因为我们的存在而有一些不同!