热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RocketMQ:RocketMQ常见面试题整理

RocketMQ常见面试题整理MQ优缺点:优点:异步;解耦;削峰。RocketMQ默认端口号:9876。RocketMQ三大功能:缺点:系统可用性降低;系统复杂性提高;存在消息(数

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、Redis

https://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

图灵学院-RocketMQ常见面试题汇总:https://www.bilibili.com/video/BV1iV4y1J7sU?p=1

世界上最大的谎言,就是你不行;这是你想要走的路,也适合你;路还长,一切才刚刚开始!让世界因为我们的存在而有一些不同!



推荐阅读
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 开发日志:磁盘读取技术详解——CHS模式的应用与解析
    开发日志:磁盘读取技术详解——CHS模式的应用与解析 ... [详细]
  • Java服务问题快速定位与解决策略全面指南 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 《软件测试精要》深度解析与实战经验分享
    《软件测试精要》深度解析与实战经验分享,系统梳理了软件测试的核心概念与关键原则,结合实际项目中的测试经验和教训,详细探讨了测试分类、测试权衡要素、测试效率、测试覆盖率以及测试框架的引入和用例设计等内容,为读者提供了全面而实用的指导。 ... [详细]
  • 本文详细介绍了如何在 Grafana 中独立于 Alertmanager 配置邮件和微信告警。具体步骤包括配置 SMTP 服务器以实现邮件告警,以及设置微信告警的集成方式。通过这些配置,用户可以更灵活地管理和接收来自 Grafana 的告警通知,确保及时响应系统异常。文章还提供了详细的配置示例和常见问题的解决方案,帮助用户顺利完成设置。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 全面解析Java虚拟机:内存模型深度剖析 ... [详细]
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • Java队列机制深度解析与应用指南
    Java队列机制在并发编程中扮演着重要角色。本文深入解析了Java队列的各种实现类及其应用场景,包括`LinkedList`、`ArrayBlockingQueue`和`PriorityQueue`等,并探讨了它们在高并发环境下的性能表现和适用场景。通过详细分析这些队列的内部机制和使用技巧,帮助开发者更好地理解和应用Java队列,提升系统的设计和架构能力。 ... [详细]
author-avatar
我爱技术交流
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有