前言
我想,很多人和我一样在煎熬中度过着2021年,也经历了不少困难,随着国家对疫情的控制,互联网行业又重新迎来了生机。
我在2021年拿到了阿里Java研发岗的offer,也算是正式提桶进大厂的打工人了。于是乎,我想把我的经历分享给大家,希望你们在金三银四这个跳槽旺季找到一份更满意的工作!
面试结束后我大概总结了一下,发现还是准备不够充分,基本上全靠自己平时的积累才侥幸通过。因此,我建议大家平时一定要养成学习的习惯,哪怕只花30min,日积月累总会有收获;其次,提前两个月的时间做好充分的准备,最好不要临时抱佛脚。
纯手打“RocketMQ笔记”
第一节:RocketMQ介绍
-
1.1 核心概念(主题、生产者、消费者、消息)
-
1.2 RocketMQ的设计理念和目标(设计理念、设计目标)
第二节:RocketMQ中消息的发送
-
2.1 单向[OneWay]发送(代码演示、Producer Group、Producer实例、Message Key、Tag)
-
2.2 可靠同步发送(代码演示、Message ID、SendStatus、Queue)
-
2.3 可靠异步发送(代码演示)
-
2.4 RocketMQ中消息发送的权衡
第三节:RocketMQ消息消费
-
3.1 集群消息和广播消费(基本概念)
-
3.2 场景对比(集群消息模式、广播消息模式、使用集群模式模拟广播)
-
3.3 消费方式(推模式、拉模式)
第四节:深入消息发送
-
4.1 消息生产者流程
-
4.2 批量消息发送
-
4.3 消息重试机制(规避原则)
第五节:深入消息模式
-
5.1 拉模式
-
5.2 推模式(长轮询、流量控制、消息队列负载与重新分布机制、消息确认、消息进度存储、推模式总结)
第六节:顺序消息
-
6.1 全局顺序消息(适用场景、示例)
-
6.2 部分顺序消息
第七节:延时消息
-
7.1 概念介绍
-
7.2 适用场景
-
7.3 使用方式
第八节:死信队列
-
8.1 概念介绍
-
8.2 适用场景(死信消息的特性、死信队列的特性)
第九节:消费幂等
-
9.1 什么是消费幂等
-
9.2 需要处理的场景
-
9.3 处理方法
第十节:消息过滤
-
10.1 概念介绍
-
10.2 表达式过滤
-
10.3 类过滤
第十一节:RocketMQ存储结构概要设计
-
11.1 消息存储结构(CommitLog、ConsumeQueue、IndexFile、Config、其他)
-
11.2 内存映射
-
11.3 文件刷盘机制(异步刷盘方式、同步刷盘方式、总结)
-
11.4 过期文件删除(过期判断、删除条件)
第十二节:RocketMQ中的事务消息
-
12.1 事务消息实现思想
-
12.2 两阶段提交
-
12.3 事务状态回查机制
-
12.4 代码实现
第十三节:RocketMQ主从同步(HA)机制
- 13.1 RocketMQ集群部署模式(集群部署
点击领取2024完整开源项目《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
模式:单master模式、多master模式、多master多Slave异步复制模式、多master多slave同步双写模式、多主模式与数据重复;安装部署过程)
-
13.2 主从复制原理
-
13.3 读写分离机制
-
13.4 与Spring集成(Pom文件、生产者、消费者)
-
13.5 与SpringBoot集成
第14节:限时订单实战
-
14.1 什么是限时订单
-
14.2 如何实现限时订单(限时订单的流程、限时订单实现的关键、轮询数据库、Java本身的提供的解决方案、从系统可用性角度考虑、从系统伸缩性角度考虑)
-
14.3 用RocketMQ实现限时订单(延时消息:概念介绍、适用场景;核心的代码部分)
第十五节:RocketMQ源码分析
-
15.1 RocketMQ整体架构
-
15.2 NameServer
-
15.3 RocketMQ服务启动
-
15.4 源码分析之消息的来龙去脉(消息的生产:Client中的消息发送、Broker中消息的生产、Broker中更新消息队列和索引文件;消息的消费:Client中的消息者启动流程、消息的拉取、消息的消费)
最后
ActiveMQ消息中间件面试专题
- 什么是ActiveMQ?
- ActiveMQ服务器宕机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢怎么办?
- 消息的不均匀消费怎么办?
- 死信队列怎么办?
- ActiveMQ中的消息重发时间间隔和重发次数吗?
ActiveMQ消息中间件面试专题解析拓展:
redis面试专题及答案
- 支持一致性哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
?
高并发多线程面试解析与拓展
[外链图片转存中…(img-8AWCaY6w-1709719584108)]
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
[外链图片转存中…(img-tg2u08aQ-1709719584108)]