- 博客(38)
- 收藏
- 关注
原创 RAG 应用开发背景与问题痛点:从大模型幻觉到检索增强生成
本文系统梳理了 RAG(Retrieval-Augmented Generation)的产生背景与核心问题,从大语言模型幻觉出发,深入解析 RAG 的类型、架构与运行机制,并结合实际开发流程,详细说明 RAG 在真实业务场景中的数据处理与工程实现方式,为构建可信、可控的 LLM 应用提供完整认知框架。
2025-12-19 20:01:07
929
原创 MySQL 什么情况下会产生死锁?为什么会死锁?以及 Online DDL 解决了什么问题
本文从真实业务场景出发,系统解析了 MySQL InnoDB 中死锁产生的根本原因,深入讲解了记录锁、间隙锁、Next-Key Lock、插入意向锁等核心锁机制,并通过事务执行顺序还原死锁形成过程。同时对 Online DDL 的设计目标与能力边界进行了澄清,帮助读者从原理层面理解并规避高并发下的死锁问题。
2025-12-18 18:02:06
866
原创 如何设计分布式延时消息?——以机票购买场景为例
延时消息是电商、支付、票务系统中的核心基础能力。本文以机票购买场景为例,从本地延时实现出发,逐步引出分布式延时消息的设计挑战,并深入解析 Redis、时间轮、RocketMQ 等主流实现方案,构建分布式延时消息系统。
2025-12-17 21:00:53
992
原创 MySQL 一行记录是如何存储的?—— 从磁盘文件到 InnoDB 行格式的完整拆解
本文从磁盘文件层出发,系统解析了 MySQL InnoDB 存储引擎中一行记录的完整存储过程,详细讲解了表空间、段、区、页、行的层级结构,并深入拆解了 COMPACT 行格式的内部组成,包括变长字段管理、NULL 值存储、记录头信息及隐藏字段机制,帮助读者从底层理解 MySQL 的数据存储原理与设计取舍。
2025-12-15 19:56:41
1461
原创 一条 SELECT 语句在 MySQL 中是如何执行的?—— 从 TCP 连接到结果返回的完整链路解析
本文从底层视角详细解析了一条 SELECT 语句在 MySQL 中的完整执行流程,涵盖连接建立、查询缓存、SQL 解析、执行计划生成以及执行器与存储引擎的协作机制,深入解释了 MySQL 优化器的工作原理和关键设计取舍,适合作为理解 MySQL 内核执行机制和面试高频题的系统性参考。
2025-12-13 22:26:40
1190
原创 Go 指针详解:定义、初始化、nil 语义与用例(含 swap 示例与原理分析)
本文从基础入手,系统讲解 Go 指针的定义、初始化与使用场景,解释了为什么通过指针能在函数中修改调用者的对象(演示结构体字段修改与 swap 交换两个变量的经典例子),并详细区分了 new 与 make 的差别、不同类型的 nil 行为,以及逃逸分析对指针指向局部变量时的影响。文章结合代码和底层原理,帮助读者在工程中安全、有效地使用 Go 指针。
2025-12-12 23:33:32
1210
原创 分布式基础知识:分布式事务完整解析(背景、模式、协议、优缺点)
本文系统介绍了分布式事务从产生背景到理论基础、从事务模式 AT/TCC/Saga/XA到刚柔性分类,再到分布式事务协议 2PC/3PC 原理及优缺点。以深度讲解 + 代码 + 场景为主线,为工程师提供完整的分布式事务知识体系,帮助读者从根本理解分布式一致性问题与工程落地策略。
2025-12-11 17:25:06
1407
原创 Spring 自动装配深度解析:@Autowired、@Resource 与自动注入实战指南
本文从原理到实践全面解析 Spring 中常用的自动装配注解 @Autowired 与 @Resource,比较它们的注入策略、处理流程与常用属性,探讨构造器/Setter/字段注入的优劣,覆盖 @Qualifier、@Primary、集合注入、可选注入、懒加载与循环依赖等进阶场景。文章结合代码示例与最佳实践建议,帮助你在工程中正确、安全、可测试地使用自动装配。
2025-12-10 23:48:51
1600
原创 MySQL Undo Log 深度解析:表空间、MVCC、回滚机制与版本演进全解
本文系统性解析了 MySQL InnoDB 的 Undo Log,包括表空间结构、Undo 的回滚与 MVCC 原理、Undo/Binlog/Redo 的区别、物理结构与写入流程、Undo 堆积及清理机制,并结合 MySQL 各版本演进对 Undo 的优化进行深入讲解。本文既适合面试备战,也适合从底层理解 MySQL 事务机制的读者。
2025-12-08 22:26:19
1811
1
原创 MySQL Redo Log 深度解析:WAL、三层架构与崩溃恢复原理全揭秘
本篇文章系统深入解析 MySQL InnoDB 的 Redo Log,包括其在事务持久性中的核心作用、WAL 写前日志机制、三层日志架构(redo log buffer、OS buffer、redo log file)、刷盘策略、环形写入结构、崩溃恢复流程,以及与 binlog 的区别等重要内容。通过示例和机制讲解,使读者能够清晰理解 Redo Log 如何支撑 MySQL 的高性能与高可靠性。阅读全文即可完整掌握 InnoDB redo log 的原理与实践,是学习数据库底层的必读文章。
2025-12-05 23:09:29
1451
原创 ThreadLocal 的弊端与优化实践:Scope 与 FastThreadLocal 深度解析
本文深入解析了 ThreadLocal 的根本问题与局限性,并系统介绍了 Scope 对上下文的统一管理能力,包括生命周期管理、ScopeKey 设计、结构化上下文体系等。同时详细分析了 Netty 中 FastThreadLocal 的底层原理、性能提升机制与最佳实践。通过代码示例、结构对比和使用注意事项,让读者全面理解从 ThreadLocal → Scope → FastThreadLocal 的进化链路,掌握在不同场景下的最佳选择策略。
2025-12-04 22:57:51
1110
原创 ThreadLocal 深度解析:它解决了什么、原理是什么、如何正确使用(含代码与实战建议)
本文从问题出发,全面解析 Java 的 ThreadLocal:它为每个线程维护独立变量副本,解决线程间共享冲突与跨层传递上下文的需求。深入讲解 ThreadLocal 的内部实现(ThreadLocalMap、弱引用 key)、InheritableThreadLocal 的复制行为、以及常见导致内存泄漏的场景与根本原因。基于实现细节,文章给出清晰且可执行的最佳实践(withInitial、try-finally 中 remove()、线程池上下文传递策略等)并通过示例代码说明如何安全高效地使用 Thre
2025-12-03 19:32:26
1642
原创 RocketMQ 详解:从异步解耦到存储与消费全链路解析
本文从异步解耦与削峰的业务价值切入,系统解析 RocketMQ 的整体架构(Producer、Broker、Consumer、NameServer),并深入讲解消息从生产到持久化(CommitLog、ConsumeQueue、IndexFile)、再到消费(拉取、Rebalance、队列分配、offset 管理、重试与幂等)的完整链路。文章结合实现细节与工程实践建议,帮助开发者全面掌握 RocketMQ 的工作机制与生产环境中的常见问题与解决方案。
2025-12-02 20:35:28
1127
原创 为什么 ArrayList 是线程不安全的,却依然被广泛使用?——深入解析与工程实践指南
本文从底层原理、源码行为到多线程案例入手,深入分析了 ArrayList 为什么线程不安全,并结合扩容机制、modCount Fail-Fast 等细节展示了真实风险。同时从单线程场景、性能优势、工程选型等角度解释了 为什么 ArrayList 仍然是最常用的 List 类型。文章最后给出了线程安全集合的对比与选型建议,帮助开发者在不同业务场景中选择最合适的集合结构。
2025-12-01 18:50:35
1141
原创 MySQL(InnoDB)数据存储链路全景(从 SQL 到磁盘)——深入理解“数据在哪里、如何存、如何变更”
本文从“SQL 到磁盘”的角度,逐步串通 InnoDB 的存储链路:页(page)与记录的物理布局、聚簇索引与二级索引的差异、插入/更新的写路径(buffer pool、undo、redo、doublewrite)、页分裂与外溢、MVCC 的实现机制与 background tasks(purge、flush、change buffer 合并)等关键点。重点放在“谁持有数据、谁保证持久化、谁提供并发视图”三个问题上,为数据库设计与性能调优提供可操作的理解和建议。
2025-11-28 13:00:36
899
原创 MySQL(InnoDB)一棵 B+ 树能存多少条记录?从页、记录到树高度的完整链路解析
本文从页(page)与记录(row)的物理字节组成出发,串通 InnoDB 的页结构(File header / Page header / infimum & supremum / slot array)、记录头与内部隐含字段(DB_TRX_ID、DB_ROLL_PTR、DB_ROW_ID),推导出 页内能容纳多少条记录 的通用公式,并给出典型例子与树高估算方法。文中给出可复用的估算步骤与实战建议,帮助你在容量规划与性能诊断时做出准确判断。
2025-11-28 12:42:36
812
原创 Java Optional 深度解析:优雅消灭空指针异常的现代写法
本文系统深入解析 Java Optional,从基础概念、与 null 的区别,到创建方式、链式操作、值处理、异常模式,再到实战场景如 Service 层空值处理、API 响应处理、Stream 集成等,通过大量示例帮助你真正掌握 Optional 的正确使用姿势。文章还总结了 Optional 的最佳实践与不适用场景,让你在实际工程中既能优雅消除空指针,又避免对 Optional 的误用与滥用。
2025-11-26 22:37:18
1575
原创 Java CompletableFuture 异步编程深度解析:从 Future 到 链式异步的现代实践
这篇文章系统讲解了 Java CompletableFuture 的异步编程机制,从 Future 的局限性切入,深入解析 CompletableFuture 的设计思想与核心能力,包括异步任务创建、链式组合、任务并行、异常处理、任务合并等先进特性。通过大量代码实例,你将全面掌握如何在工程中使用 CompletableFuture 构建高性能、高吞吐量的异步处理方案,是理解 Java 现代并发编程必读的一篇技术文章。
2025-11-25 22:39:46
1567
原创 Java 并发编程:线程安全与锁优化深度解析(扩展进阶版)
本文从线程安全的三大特性(原子性、可见性、有序性)出发,系统讲解 Java 并发编程核心机制,包括 volatile、synchronized、ReentrantLock 与 AQS 底层实现。文章进一步深入锁升级原理、CAS 无锁化机制,并提供丰富的锁优化与并发性能实践指导,是一篇适合初学者与中高级开发者的进阶并发专题。
2025-11-24 00:52:36
1050
原创 MySQL 执行计划(EXPLAIN)深度解析:从基础到高级分析的全流程指南
本文将从 EXPLAIN 的核心意义、输出字段解析、执行计划类型分析,到高级执行计划(JSON 格式、ANALYZE),最后总结出常见的 EXPLAIN 调优 checklist,帮助你彻底掌握执行计划优化。
2025-11-23 01:26:16
1179
原创 深入理解 Agent 相关协议:从单体 Agent 到 Multi-Agent、MCP、A2A 与 Agentic AI 的系统化实践
当大模型从“对话式问答”升级为“可调用工具、可操作系统、能自主规划任务”的智能体(Agent)后,整条 AI 应用链路发生了质变...
2025-11-21 23:56:58
1034
原创 MySQL 索引失效的典型场景与优化方案(附详细代码)
本篇文章将系统梳理 MySQL 索引失效的典型场景,并为每个场景给出示例、失效原因、解决方案。同时,文章还会补充许多容易忽视的边角场景,并介绍如何通过 EXPLAIN 工具定位问题。
2025-11-20 22:18:56
1345
原创 深入理解 Java Stream:从创建到过滤、归约、分组与聚合(带大量实战代码)
Java Stream API 是 Java 8 引入的用于处理集合/序列的声明式、可组合的计算模型。它能让你用更清晰、函数式的方式完成遍历、过滤、映射、分组、聚合、归约等操作,提升代码可读性并有机会利用并行化提升性能。本文系统覆盖 Stream 的背景、创建方式、常用中间/终端操作、进阶用法(分组、聚合、并行、原始流)和常见陷阱,配以可运行的 Java 示例,帮助你把 Stream 用到实战中。
2025-11-19 22:19:32
1695
原创 分库分表下如何优雅实现分页查询?——从全局分页到搜索引擎辅助的系统性解法
在分库分表架构下实现高性能分页查询是一项充满挑战的工作,本文系统对比三大主流方案——全局查询、禁止跳页、搜索引擎辅助,并深入分析其原理、优缺点与适用场景,帮助你在复杂业务中做出最优技术选型。
2025-11-18 23:43:43
1149
原创 在高 QPS 下实现实时热 Key 探测:架构设计与实现方案
很多流量突刺事故并非“抗不住”,而是没能提前 1~3 秒发现即将形成的热点,因此一个系统层面的、可通用复用的、秒级热点发现组件就非常有必要。
2025-11-17 22:36:39
1166
原创 SQL 慢查询分析与优化指南:原因、示例与实战优化策略
本文结合常见慢 SQL 类型,从 示例、表现、原因、优化方向 四个角度深入讲解,帮助你真正掌握如何系统性提升数据库查询性能。
2025-11-16 15:25:08
1282
原创 深入理解并发控制:锁机制、自旋锁、死锁与避免策略全解析
本篇博客将从“为什么要加锁”切入,逐步解释自旋锁、死锁、银行家算法以及乐观/悲观锁的核心思想,帮助你构建一套完整的并发控制知识体系。
2025-11-15 12:20:18
1188
原创 深入理解零拷贝(Zero-Copy):从传统 I/O 到高性能数据传输的演进
零拷贝(Zero-Copy)不是“没有拷贝”,而是“CPU 不拷贝”!
2025-11-13 13:19:01
1023
原创 当进程分身:fork复制了什么?以及写时复制的精妙设计
fork() 究竟复制了哪些东西?它为什么能高效?copy-on-write 在这其中发挥了什么魔法?本文进行详细介绍
2025-11-09 22:24:41
1549
原创 深入理解 I/O 模型、服务器并发与 I/O 多路复用(select / poll / epoll / 边缘触发 vs 水平触发)
本文从基础概念出发,系统讲解常见 I/O 模型(阻塞 / 非阻塞 / 信号驱动 / 异步)、常见服务器并发处理方式(进程/线程/线程池/事件驱动/混合),并深入比较 select、poll、epoll 的实现差异、性能特性与适用场景。
2025-11-06 13:10:18
1325
原创 线程、进程与协程:从概念到实战(含 Go 中的协程详解)
本文系统梳理进程 / 线程 / 协程(coroutine / goroutine)三者的定义、运行机制、优缺点与典型场景对比,讨论并发与并行的区别、调度策略(内核调度 / 用户级调度 / M:N)、同步与通信机制、常见并发问题(竞态、死锁、资源泄露)以及工程实践建议。
2025-11-04 13:07:39
1041
原创 深入理解 volatile:Java 可见性、禁止重排序与实践指南
本文从 Java 内存模型(JMM)出发,解释 volatile 的语义(可见性、禁止重排序、有限的原子性保障),结合源码/伪码与大量实例(如状态标志、双重检查锁、对象发布、性能对比),并与 synchronized、Atomic 包做对比,列出常见误区与实战建议,帮助你在工程中正确使用 volatile。
2025-11-04 00:26:29
1906
原创 【Go语言学习笔记】深入理解 Go map:使用、底层原理与 Java Map 全面对比
从入门到深入剖析,一文读懂 Go 语言中的 map —— 从基本语法到底层结构,从内存管理到与 Java HashMap 的差异。
2025-10-30 21:56:15
1007
原创 【Go语言学习笔记】print、println、fmt.Print()、fmt.Printf()、fmt.Println() 有什么区别?
一口气搞清楚Go语言所有 print 系列函数的本质与区别。
2025-10-29 22:43:35
1087
原创 从零理解单例模式:饿汉、懒汉到枚举
从最基础的饿汉、懒汉模式,到双重检查锁、静态内部类与枚举单例,深入分析五种单例实现方式的线程安全、性能、序列化与反射问题
2025-10-26 14:30:06
1378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅