首页 > 其他分享 >RocketMQ:RocketMQ常见面试题整理

RocketMQ:RocketMQ常见面试题整理

时间:2022-09-04 20:35:05浏览次数:99  
标签:面试题 常见 kafka MQ 消息 video 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

标签:面试题,常见,kafka,MQ,消息,video,RocketMQ
From: https://www.cnblogs.com/YiMingXiaoBuYiMengXiaoNai/p/RocketMQ-commonFaceTestProblem.html

相关文章

  • RocketMQ
    一、RocketMQ整体架构设计整体的架构设计主要分为四大部分,分别是:Producer(生产者)、Consumer(消费者)、Broker(服务器)、NameServer(注册中心)。 NameServer Na......
  • redis面试题2
    1、现在有个场景,一个key内容很大(几十M),一个key是热点,你如何优化?2、如何优雅的删除这个大key?3、redis的存储结构?4、实现map的方法除了哈希还有哪些?5、redis的setnx底层怎......
  • 前端面试题每日3题——2022-09-04
    每日3题16以下代码执行后,控制台中的输出内容为?leta={n:1};letb=a;a.x=a={n:2};console.log(a.x);console.log(b.x);17以下代码执行后,控制台中......
  • redis面试题
    1、redis和mwmcached的区别2、缓存数据的处理流程是怎样的3、为什么要用redis/为什么要用缓存4、Redis常见数据结构以及使用场景5、Redis单线程模型详解6、Redis没有......
  • golang面试题2
    1、go方法值接收者和指针接收者结论:如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者      如果方法的接收者是值类......
  • 2022 年 Javascript 面试题
    2022年Javascript面试题这是我在前端面试中遇到的第二组javascript问题。可以通过这个帖子找到上一组javascript的问题[面试题2022基础javascript从一家公司转到......
  • leetcode 面试题08.08 有重复字符串的排列组合 C/C++ 排序 + 深度优先搜索(分支限界)
    #include<iostream>#include<algorithm>#include<vector>usingnamespacestd;classSolution{public:vector<string>permutation(stringS){sort(S.begin(......
  • “如何精通 Python?”——我 LinkedIn 上的一个常见问题。
    “如何精通Python?”——我LinkedIn上的一个常见问题。Photoby克里斯·里德on不飞溅1.你知道其他编程语言和数据结构的概念吗?不。由于您不了解任何基本的编......
  • 棋局评估(不常见的搜索)
    棋局评估(MINMAX搜索+α-β剪枝)这是一个博弈的问题,在这里,你的对手希望他得高分,你希望你得高分,可是你分数高了他的分就低了。下棋的时候,你希望走出最好的局面,即使输也要分......
  • MongoDb 常见语法
    查询查询所有db.products.find()分页查询db.products.find().limit(20).skip(10)查询过滤某些列(_id为默认查询列)db.products.aggregate([{$project:{"pNa......