青山木

青山木

Hot 100 --- 不同路径
发表于2026-09-21|LeetCode 热题 HOT 100|算法•leetcode•数组•动态规划•DP
本文讲解不同路径的核心思路:只能向下或向右移动时,到达每个格子的路径数等于其上方和左方路径数之和,用动态规划递推;方法一是二维 dp 数组,方法二是只保留上一行的一维数组把空间降到 O(n)
RocketMQ 入门到原理(六):可靠性全景
发表于2026-09-20|后端开发RocketMQ|RocketMQ•消息队列•幂等•顺序消息•可靠性•消息丢失•重复消费•消息堆积•消费积压•Checklist
这是 RocketMQ 系列的收官篇,把第一篇埋下的「MQ 四大问题」——消息丢失、重复消费、消息堆积、顺序问题——逐一收口。本篇详细分析消息堆积的判定标准(Diff/消费速率/业务容忍度三个视角)与四类处理方案(扩容消费者、增加消费线程、扩容队列、生产方限流),最后输出一张完整的可靠性全景矩阵与 checklist,作为整个系列的总纲与查漏工具。
RocketMQ 入门到原理(五):特殊消息类型
发表于2026-09-20|后端开发RocketMQ|RocketMQ•消息队列•顺序消息•延迟消息•定时消息•事务消息•半消息•消息回查•消息过滤•SQL92
这是 RocketMQ 系列的第五篇,横向专题讲解三种特殊消息:顺序消息(生产端哈希投递+分布式锁、消费端单线程消费)、定时/延迟消息(SCHEDULE_TOPIC 中转+定时服务扫描)、事务消息(半消息+本地事务+二次确认+事务回查),以及消息过滤(Tag/SQL92)的实现原理与适用场景。
RocketMQ 入门到原理(四):消息消费原理
发表于2026-09-20|后端开发RocketMQ|RocketMQ•消息队列•幂等•消息消费•Consumer•Rebalance•长轮询•Tag过滤•offset•重试•死信队列
这是 RocketMQ 系列的第四篇,把「一条消息的生命周期」的消费阶段放大:消费者组与订阅关系一致性,消费全流程(问路 → Rebalance 分队列 → 长轮询拉取 → Tag 过滤消费 → 提交 offset),平均分配与一致性哈希两种 Rebalance 策略,Push/Pull 与长轮询的本质,重试队列与死信队列机制,重复消费的两大根源与幂等消费的落地方法。
RocketMQ 入门到原理(二):消息发送原理
发表于2026-09-19|后端开发RocketMQ|RocketMQ•NameServer•消息发送•Producer•路由表•幂等
这是 RocketMQ 系列的第二篇,沿着「一条消息的生命周期」主线放大「发送」这一段。本文严格按「组装消息 → 问路 NameServer → 直连发送选队列 → 落盘确认」四步层层深入:详解 NameServer 的注册、路由表(写队列/读队列数量、perm 权限)与心跳剔除机制,说明轮询选队列的原理,对比同步、异步、单向三种发送方式,最后讲发送失败的重试、故障转移、故障隔离与重复消息的幂等解法。
RocketMQ 入门到原理(三):消息存储原理
发表于2026-09-19|后端开发RocketMQ|主从复制•RocketMQ•消息队列•存储•CommitLog•ConsumeQueue•IndexFile•顺序写•零拷贝•PageCache•刷盘
这是 RocketMQ 系列的第三篇,走进 Broker 内部,看一条消息落盘的全过程。本文先拆解存储的三大文件(CommitLog、ConsumeQueue、IndexFile),再按「写 PageCache → 刷盘返回 ACK → 异步构建索引」的流程讲透一条消息的落盘细节,接着解释为什么顺序写这么快(机械硬盘物理原理、页缓存、零拷贝),最后系统讲解主从复制机制与刷盘×复制的可靠性组合。
RocketMQ 入门到原理(一):整体架构与消息的生命周期
发表于2026-09-18|后端开发RocketMQ|RocketMQ•消息队列•消息中间件•NameServer•Broker
这是 RocketMQ 系列的第一篇,围绕"一条消息的生命周期"这条主线建立全局地图。本文从消息队列的三大作用(异步、解耦,削峰填谷)讲起,说明 MQ 高可用要求与随之而来的消息丢失、重复消费、堆积、顺序四大问题,再拆解 RocketMQ 的四大组成部分(Producer、Broker、NameServer、ConsumerGroup)及连接关系,最后用一条消息的生命周期把全部概念串起来。
Hot 100 --- 最长有效括号
发表于2026-09-17|LeetCode 热题 HOT 100|双指针•算法•leetcode•字符串•栈
本文讲解最长有效括号的核心思路:方法一是栈加哨兵记录断点位置,方法二是双指针正反各扫一遍,补齐"左侧多余左括号"导致的漏算
Hot 100 --- 分割等和子集
发表于2026-09-15|LeetCode 热题 HOT 100|算法•leetcode•数组•动态规划•DP•0/1背包
本文讲解分割等和子集的核心思路:能否分割等价于能否从数组中选出和为 sum/2 的子集,转化成 0/1 背包,dp[i] 表示能否凑出 i,内层必须从 target 往下遍历防重复选取
Hot 100 --- 乘积最大子数组
发表于2026-09-15|LeetCode 热题 HOT 100|算法•leetcode•数组•动态规划•DP
本文讲解乘积最大子数组的核心思路:dp[i] 表示以 nums[i] 结尾的最大乘积,但负数会让最大变最小,必须同时维护以 nums[i] 结尾的最大和最小乘积,O(n) 一次遍历
1234…13
avatar
青山木
正在学习Java后端开发+智能体开发,希望能与大家多多交流
文章
122
标签
295
分类
9
Follow Me
公告
欢迎来到我的博客,记录学习与成长的点滴。
最新文章
无标题
无标题2026-11-05
多线程为什么会读到旧值?从 CPU 缓存、JMM 到 volatile 的全链路拆解
多线程为什么会读到旧值?从 CPU 缓存、JMM 到 volatile 的全链路拆解2026-11-01
RAG为什么答不出全局性和关联性问题? GraphRAG 与 LightRAG 全链路拆解
RAG为什么答不出全局性和关联性问题? GraphRAG 与 LightRAG 全链路拆解2026-10-29
RAG 为什么总答不准?从切块到混合检索的全链路拆解
RAG 为什么总答不准?从切块到混合检索的全链路拆解2026-10-20
Java 并发基础全解:从进程与线程到多线程、线程安全与死锁
Java 并发基础全解:从进程与线程到多线程、线程安全与死锁2026-10-16
分类
  • Java3
  • LeetCode 热题 HOT 10084
  • RAG2
  • Redis1
  • agent8
  • 博客搭建1
  • 后端开发22
    • RocketMQ6
标签
Rebalance 工作流 缓存穿透 RocketMQ 原地哈希 实体消歧 线程池 PBAC 翻转 Java 双端队列 重试 volatile Redis Top K 回文 二叉树 LFU Cache Aside BM25 双向链表 分治 Canal Lua Graph Gossip 实战 GitHub Pages quicklist 布隆过滤器 模拟 BFS 顺序写 Docker 半消息 有序矩阵 Checklist PageCache LRU 底层数据结构
归档
  • 十一月 2026 2
  • 十月 2026 9
  • 九月 2026 33
  • 八月 2026 9
  • 七月 2026 35
  • 六月 2026 29
  • 五月 2026 1
  • 四月 2026 4
网站信息
文章数目 :
122
最后更新时间 :
© 2025 - 2026 By 青山木框架 Hexo 7.3.0|主题 Butterfly 5.5.4