01 2025 档案
摘要:1.什么是消息中间件 (1)什么是同步 (2)如何基于消息中间件实现异步 (3)消息中间件的作用 (1)什么是同步 通常一个公司里可能会存在多个业务系统,这些业务系统之间的通信都是通过接口调用来进行的。现在假设用户在浏览器或者APP向系统A发起一个请求,系统A收到这个请求后会马上去调用系统B的接口。
阅读全文
摘要:大纲 1.一个订单系统的整体架构、业务流程及负载情况 2.订单系统面临的技术问题一:下订单的同时还要发券、发红包、Push推送等导致性能太差 3.订单系统面临的技术问题二:订单退款时经常流程失败导致无法完成退款 4.订单系统面临的技术问题三:第三方客户系统的对接耦合性太高导致经常出现问题 5.订单系
阅读全文
摘要:大纲 1.RocketMQ的整体架构与运行流程 2.基于NameServer管理Broker集群的架构 3.Broker集群的主从复制架构 4.基于Topic和Queue实现的数据分片架构 5.Broker基于Pull模式的主从复制原理 6.Broker层面到底如何做到数据0丢失 7.数据0丢失与写
阅读全文
摘要:大纲 1.Producer基于队列的消息分发机制 2.Producer基于Hash的有序消息分发 3.Broker如何实现高并发消息数据写入 4.RocketMQ读写队列的运作原理分析 5.Consumer拉取消息的流程原理分析 6.ConsumeQueue的随机位置读取需求分析 7.Consume
阅读全文
摘要:大纲 1.Producer作为生产者是如何创建出来的 2.Producer启动时是如何准备好相关资源的 3.Producer是如何从拉取Topic元数据的 4.Producer是如何选择MessageQueue的 5.Producer与Broker是如何进行网络通信的 6.Broker收到一条消息后
阅读全文
摘要:大纲 1.NameServer的启动脚本 2.NameServer启动时会解析哪些配置 3.NameServer如何初始化Netty网络服务器 4.NameServer如何启动Netty网络服务器 5.Broker启动时是如何初始化配置的 6.BrokerController的创建以及包含的组件 7
阅读全文
摘要:大纲 1.RocketMQ整体运行原理的介绍顺序 2.RocketMQ生产者是如何发送消息的 3.Broker是如何持久化接收到的消息到磁盘上 4.基于DLedger技术的Broker主从同步原理 5.消费者进行消息拉取和消费的过程 6.消费者从Master或Slave上拉取消息的策略 7.Rock
阅读全文
摘要:大纲 1.G1的FGC可以优化的点 2.一个bug导致的FGC(Kafka发送重试 + subList导致List越来越大) 3.为什么G1的FGC比ParNew + CMS要更严重 4.FGC的一些参数及优化思路 1.G1的FGC可以优化的点 (1)FGC的基本原理 (2)遇到FGC应该怎么处理
阅读全文
摘要:大纲 1.大对象导致频繁Mixed GC的案例 2.Mixed GC到底是在优化什么(从避免到提速) 3.Mixed GC相关参数详解之堆内存分配参数 4.Mixed GC其他相关的参数详解及优化 1.大对象导致频繁Mixed GC的案例 (1)案例背景 (2)问题现场 (3)Redis缓存有什么问
阅读全文
摘要:大纲 1.5千QPS的数据报表系统发生性能抖动的优化(停顿时间太小导致新生代上不去) 2.由于产生大量大对象导致系统吞吐量降低的优化(大对象太多频繁Mixed GC) 3.YGC其他相关参数优化之TLAB参数优化 4.YGC其他相关参数优化之RSet、PLAB和大对象的处理优化 1.5千QPS的数据
阅读全文
摘要:大纲 1.TLAB的GC日志解读 2.YGC的GC日志解读 3.模拟YGC(单次GC及多次GC的不同场景) 4.打开实验选项查看YGC的详情日志信息 5.Mixed GC日志信息之初始标记过程 6.Mixed GC日志信息之混合回收过程 7.Mixed GC日志信息之Region的详细信息和标记过程
阅读全文
摘要:大纲 1.FGC的一些前置处理 2.FGC的整体流程 3.传统FGC只能串行化 + G1的FGC可以并发化 4.并行化FGC之并行标记 + 任务窃取 5.并行化FGC之跨分区压缩 + 避免对象跨分区 6.并行化FGC之更新引用位置 + 移动对象处理 7.G1新特性之字符串去重优化 8.总结G1对FG
阅读全文
摘要:大纲 1.Mixed GC混合回收是什么 2.YGC可作为Mixed GC的初始标记阶段 3.Mixed GC并发标记算法详解(一) 4.Mixed GC并发标记算法详解(二) 5.Mixed GC并发标记算法详解(三) 6.并发标记的三色标记法 7.三色标记法如何解决错标漏标问题 8.SATB如何
阅读全文
摘要:大纲 1.G1的YGC过程 2.YGC并行处理阶段的过程 3.YGC串行处理阶段的过程(一) 4.YGC串行处理阶段的过程(二) 5.整个YGC的执行流程总结 1.G1的YGC过程 (1)YGC相关的一些参数 (2)YGC和MixedGC、FGC之间的关系 (3)YGC使用的算法 + 新生代的垃圾回
阅读全文
摘要:大纲 1.G1为了提升GC的效率设计了哪些核心机制 2.G1中的记忆集是什么 3.G1中的位图和卡表 4.记忆集和卡表有什么关系 5.RSet记忆集是怎么更新的 6.DCQ机制的底层原理是怎样的 7.DCQS机制及GC线程对DCQ的处理 提升G1垃圾回收器GC效率的黑科技 G1设计了一套TLAB机制
阅读全文
摘要:大纲 1.G1的对象分配原理是怎样的 2.深入分析TLAB机制原理 3.借助TLAB分配对象的实现原理是什么 4.什么是快速分配 + 什么是慢速分配 5.大对象分配的过程 + 与TLAB的关系 6.救命的稻草—JVM的最终分配尝试 G1如何分配对象+TLAB机制+分区协调机制 G1设计了一套TLAB
阅读全文
摘要:大纲 1.G1垃圾回收器的分区(Region大小+G1分区+Region过大过小和计算) 2.Region大小的计算原理(先转字节然后确定2的n次幂再通过1左移n位) 3.新生代分区及自动扩展(新生代动态扩展机制) 4.停顿预测模型(衰减算法)保证预期停顿时间 1.G1垃圾回收器的分区(Region
阅读全文
摘要:大纲 1.每秒仅上百请求的系统为何会OOM(RPC超时时间设置过长导致QPS翻几倍) 2.Jetty服务器的NIO机制如何导致堆外内存溢出(S区太小 + 禁NIO的显式GC) 3.一次微服务架构下的RPC调用引发的OOM故障排查实践(MAT案例) 4.一次没有WHERE条件的SQL语句引发的OOM问
阅读全文
摘要:大纲 1.如何对系统的OOM异常进行监控和报警 2.如何在JVM内存溢出时自动dump内存快照 3.Metaspace区域内存溢出时应如何解决(OutOfMemoryError: Metaspace) 4.JVM栈内存溢出时应如何解决(StackOverflowError) 5.JVM堆内存溢出时应
阅读全文
摘要:大纲 1.线上系统突然由于OOM内存溢出挂掉 2.什么是内存溢出及哪些区域会发生内存溢出 3.Metaspace如何因类太多而发生内存溢出 4.无限制调用方法如何让线程的栈内存溢出 5.对象太多导致堆内存实在放不下而内存溢出 6.模拟JVM Metaspace内存溢出的场景(动态生成268个类占10
阅读全文
摘要:大纲 1.线上大促活动导致的老年代内存泄漏和FGC(MAT分析出本地缓存没处理好) 2.百万级数据误处理导致频繁FGC(大数据量加载到内存处理 + String.split()) 3.JVM运行原理和GC原理总结 4.JVM性能优化的思路和步骤 5.问题汇总 1.线上大促活动导致的老年代内存泄漏和F
阅读全文
摘要:大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 + 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对
阅读全文
摘要:大纲 1.使用jstat了解线上系统的JVM运行状况 2.使用jmap和jhat了解线上系统的对象分布 3.如何分析JVM运行状况并合理优化 4.使用jstat分析模拟的BI系统JVM运行情况 5.使用jstat分析模拟的计算系统JVM运行情况 6.问题汇总 1.使用jstat了解线上系统的JVM运
阅读全文
摘要:大纲 1.动手模拟出频繁Young GC的场景 2.JVM的Young GC日志应该怎么看 3.代码模拟动态年龄判定规则进入老年代 4.代码模拟S区放不下部分进入老年代 5.JVM的Full GC日志应该怎么看 6.问题汇总 1.动手模拟出频繁Young GC的场景 (1)程序的JVM参数示范 (2
阅读全文