Hot 100 --- 不同路径
本文讲解不同路径的核心思路:只能向下或向右移动时,到达每个格子的路径数等于其上方和左方路径数之和,用动态规划递推;方法一是二维 dp 数组,方法二是只保留上一行的一维数组把空间降到 O(n)
RocketMQ 入门到原理(六):可靠性全景
这是 RocketMQ 系列的收官篇,把第一篇埋下的「MQ 四大问题」——消息丢失、重复消费、消息堆积、顺序问题——逐一收口。本篇详细分析消息堆积的判定标准(Diff/消费速率/业务容忍度三个视角)与四类处理方案(扩容消费者、增加消费线程、扩容队列、生产方限流),最后输出一张完整的可靠性全景矩阵与 checklist,作为整个系列的总纲与查漏工具。
RocketMQ 入门到原理(五):特殊消息类型
这是 RocketMQ 系列的第五篇,横向专题讲解三种特殊消息:顺序消息(生产端哈希投递+分布式锁、消费端单线程消费)、定时/延迟消息(SCHEDULE_TOPIC 中转+定时服务扫描)、事务消息(半消息+本地事务+二次确认+事务回查),以及消息过滤(Tag/SQL92)的实现原理与适用场景。
RocketMQ 入门到原理(四):消息消费原理
这是 RocketMQ 系列的第四篇,把「一条消息的生命周期」的消费阶段放大:消费者组与订阅关系一致性,消费全流程(问路 → Rebalance 分队列 → 长轮询拉取 → Tag 过滤消费 → 提交 offset),平均分配与一致性哈希两种 Rebalance 策略,Push/Pull 与长轮询的本质,重试队列与死信队列机制,重复消费的两大根源与幂等消费的落地方法。
RocketMQ 入门到原理(二):消息发送原理
这是 RocketMQ 系列的第二篇,沿着「一条消息的生命周期」主线放大「发送」这一段。本文严格按「组装消息 → 问路 NameServer → 直连发送选队列 → 落盘确认」四步层层深入:详解 NameServer 的注册、路由表(写队列/读队列数量、perm 权限)与心跳剔除机制,说明轮询选队列的原理,对比同步、异步、单向三种发送方式,最后讲发送失败的重试、故障转移、故障隔离与重复消息的幂等解法。
RocketMQ 入门到原理(三):消息存储原理
这是 RocketMQ 系列的第三篇,走进 Broker 内部,看一条消息落盘的全过程。本文先拆解存储的三大文件(CommitLog、ConsumeQueue、IndexFile),再按「写 PageCache → 刷盘返回 ACK → 异步构建索引」的流程讲透一条消息的落盘细节,接着解释为什么顺序写这么快(机械硬盘物理原理、页缓存、零拷贝),最后系统讲解主从复制机制与刷盘×复制的可靠性组合。
RocketMQ 入门到原理(一):整体架构与消息的生命周期
这是 RocketMQ 系列的第一篇,围绕"一条消息的生命周期"这条主线建立全局地图。本文从消息队列的三大作用(异步、解耦,削峰填谷)讲起,说明 MQ 高可用要求与随之而来的消息丢失、重复消费、堆积、顺序四大问题,再拆解 RocketMQ 的四大组成部分(Producer、Broker、NameServer、ConsumerGroup)及连接关系,最后用一条消息的生命周期把全部概念串起来。
Hot 100 --- 最长有效括号
本文讲解最长有效括号的核心思路:方法一是栈加哨兵记录断点位置,方法二是双指针正反各扫一遍,补齐"左侧多余左括号"导致的漏算
Hot 100 --- 分割等和子集
本文讲解分割等和子集的核心思路:能否分割等价于能否从数组中选出和为 sum/2 的子集,转化成 0/1 背包,dp[i] 表示能否凑出 i,内层必须从 target 往下遍历防重复选取
Hot 100 --- 乘积最大子数组
本文讲解乘积最大子数组的核心思路:dp[i] 表示以 nums[i] 结尾的最大乘积,但负数会让最大变最小,必须同时维护以 nums[i] 结尾的最大和最小乘积,O(n) 一次遍历





