自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 深入理解操作系统中的中断机制:类型、流程与作用全解析

本文将从定义、分类、流程到作用,全面解析现代 OS 中的中断机制。

2025-11-14 13:19:55 1310

原创 深入理解零拷贝(Zero-Copy):从传统 I/O 到高性能数据传输的演进

零拷贝(Zero-Copy)不是“没有拷贝”,而是“CPU 不拷贝”!

2025-11-13 13:19:01 1023

原创 从 malloc 1KB、1MB 到 1GB:内存分配方式的差异与 malloc 与 mmap 的对比解析

小用 brk,大用 mmap?

2025-11-10 23:55:13 571

原创 当进程分身: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 切片(slice)完全指南

一文理解slice行为、底层实现与常见陷阱。

2025-11-01 15:44:47 638

原创 【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关注的人

提示
确定要删除当前文章?
取消 删除