<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_43829708的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_43829708</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_43829708]]></copyright><item><title><![CDATA[分布式任务调度框架：XXL-Job / ElasticJob / DolphinScheduler / SchedulerX 架构对比与选型]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/167466743</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/167466743</guid><author>weixin_43829708</author><pubDate>Sat, 10 Oct 2026 09:57:46 +0800</pubDate><description><![CDATA[本文通过“三阶段模型”对比XXL-Job、ElasticJob、DolphinScheduler与SchedulerX四大分布式任务调度框架。核心差异在于：中心化/去中心化、调度推送/客户端自取、调度执行解耦/合一。XXL-Job轻量中心化，适合中小团队；ElasticJob无中心分片强，但资源占用高；DolphinScheduler支持复杂工作流与多Master并行，运维复杂；SchedulerX由阿里云托管，企业级能力完备，免运维。选型需权衡场景需求：简单任务选XXL-Job，数据分片选ElasticJ]]></description><category></category></item><item><title><![CDATA[彻底搞懂Hystrix熔断核心：线程池隔离超时真相（90%开发者都踩的资源大坑）]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/166559626</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/166559626</guid><author>weixin_43829708</author><pubDate>Thu, 24 Sep 2026 08:36:25 +0800</pubDate><description><![CDATA[Hystrix线程池隔离虽能保护Tomcat容器，但超时熔断后，业务线程仍持续占用CPU、数据库连接等资源，因Future.get(timeout)仅释放调用线程，cancel(true)仅打中断标记，而JDBC、Socket等不响应中断。熔断仅拦截新请求，不清理旧任务，导致线上常见CPU飙升、连接池耗尽问题。核心真相：Hystrix只救容器，不救业务。建议强制底层超时、主动响应中断，并考虑迁移到Resilience4j。]]></description><category></category></item><item><title><![CDATA[小表驱动大表——SQL查询优化的核心原则（深度剖析+流程图）]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/164139179</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/164139179</guid><author>weixin_43829708</author><pubDate>Fri, 28 Aug 2026 10:31:25 +0800</pubDate><description><![CDATA["小表驱动大表"是指在多表关联查询时，**优先使用经过过滤后结果集较小的表作为驱动表（外层表/Outer Table），让数据量较大的表作为被驱动表（内层表/Inner Table）**的优化策略。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;小表驱动大表驱动JOIN 查询谁当驱动表?外层循环 100 次内层索引查找 100 次。]]></description><category></category></item><item><title><![CDATA[volatile可见性与有序性底层全解：从JMM→内存屏障→Lock指令→MESI协议]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/161655922</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/161655922</guid><author>weixin_43829708</author><pubDate>Wed, 03 Jun 2026 14:16:45 +0800</pubDate><description><![CDATA[文章摘要 本文深入解析Java volatile关键字的底层实现原理，从JMM内存模型到CPU硬件架构。volatile通过内存屏障保证有序性：在读写前后插入特定屏障（StoreStore、StoreLoad、LoadLoad、LoadStore）禁止指令重排序。其可见性则依赖CPU的lock指令，强制清空StoreBuffer和InvalidateQueue，同步完成MESI缓存一致性协议的全流程，确保修改实时可见。文章通过DCL单例模式案例，展示volatile如何防止指令重排导致的对象半初始化问题。最]]></description><category></category></item><item><title><![CDATA[Java类加载器深度解析：双亲委派、类隔离、跨加载器通信、多态底层原理]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/161426206</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/161426206</guid><author>weixin_43829708</author><pubDate>Tue, 26 May 2026 16:22:52 +0800</pubDate><description><![CDATA[本文深度解析Java类加载器核心机制，涵盖双亲委派模型、类隔离原理和跨加载器通信方案。文章首先阐述类加载器的层级结构和三大铁律（子可见父、平级隔离、类唯一性判定），详细图解双亲委派流程及其安全防护、共享和隔离作用。重点讲解如何通过分层设计实现Jar包私有隔离，并剖析跨加载器通信的唯一方式：子加载器主动注册接口到父容器。文章还澄清多态与类加载器的关系，指出只要接口规范统一，跨加载器多态调用完全可行。最后总结Tomcat隔离实现原理，并提供实用口诀和常见面试题解答。全文系统性地揭示了类加载器在项目隔离、插件化架]]></description><category></category></item><item><title><![CDATA[Docker Swarm 负载均衡深度解析：VIP vs DNSRR 模式详解]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159921807</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159921807</guid><author>weixin_43829708</author><pubDate>Tue, 07 Apr 2026 14:42:24 +0800</pubDate><description><![CDATA[Docker Swarm 原生提供内置负载均衡能力，无需借助 Nginx、HAProxy 等外部组件即可实现服务发现和流量分发。本文深入剖析 Swarm 的两种负载均衡模式（VIP 和 DNSRR）、Ingress 与自定义网络的区别，结合完整的实验测试流程，并通过 Mermaid 流程图直观展示数据流向，帮助你彻底理解 Swarm 负载均衡的工作原理。]]></description><category></category></item><item><title><![CDATA[MySQL 执行计划入门：从 EXPLAIN 读懂 SQL 怎么走索引]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159763248</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159763248</guid><author>weixin_43829708</author><pubDate>Thu, 02 Apr 2026 14:50:44 +0800</pubDate><description><![CDATA[MySQL执行计划EXPLAIN入门指南 本文介绍了MySQL中EXPLAIN工具的使用方法，帮助开发者理解SQL查询的执行计划。主要内容包括： EXPLAIN的作用：查看SQL是否使用索引、使用哪种索引、是否全表扫描等，是定位慢查询的基础工具。 关键字段解读： type：反映访问类型，从差到好依次为ALL(全表扫描)、index(全索引扫描)、range(范围扫描)、ref(非唯一索引等值访问)、eq_ref(唯一索引等值连接)、const(常量查找) key：实际使用的索引 Extra：包含覆盖索引、排]]></description><category></category></item><item><title><![CDATA[深入理解 InnoDB 的 MVCC：原理、Read View 与可见性判断]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159545617</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159545617</guid><author>weixin_43829708</author><pubDate>Fri, 27 Mar 2026 14:27:32 +0800</pubDate><description><![CDATA[摘要 InnoDB的MVCC机制通过多版本并发控制实现高效读操作。核心原理包括：行记录隐藏字段(事务ID、回滚指针)、undo版本链和Read View可见性判断。Read View通过比较事务ID与活跃事务列表决定版本可见性，不同隔离级别(RC/RR)的Read View更新策略不同。MVCC主要服务于快照读，当前读仍需加锁。需注意长事务导致的版本堆积问题，合理利用MVCC可提升并发性能，但需结合锁机制保证数据一致性。]]></description><category></category></item><item><title><![CDATA[MySQL主从复制深度解析：原理、演进与延迟优化实战]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159425900</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159425900</guid><author>weixin_43829708</author><pubDate>Tue, 24 Mar 2026 14:29:53 +0800</pubDate><description><![CDATA[MySQL主从复制原理与优化方案 本文深入解析MySQL主从复制机制及其优化方案。主从复制通过Binlog实现数据同步，包含IO线程和SQL线程两个核心组件。早期版本(5.6前)采用完全单线程模式，导致从库SQL线程成为性能瓶颈。5.7+版本引入并行复制技术，支持多线程重放Relay Log。 主从延迟的根本原因是主库并发写入与从库串行重放的速度不匹配。解决方案包括： 半同步复制确保数据安全 并行复制优化提升重放效率 分库分表架构降低单库压力 这些方案可有效缓解主从延迟问题，保障数据库高可用性。]]></description><category></category></item><item><title><![CDATA[MySQL InnoDB 缓存池（Buffer Pool）详解：原理、结构与链表管理]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159387370</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159387370</guid><author>weixin_43829708</author><pubDate>Mon, 23 Mar 2026 15:03:23 +0800</pubDate><description><![CDATA[MySQL InnoDB 缓存池（Buffer Pool）是内存中用于缓存数据页的关键区域，通过内存换时间缓解磁盘瓶颈。它包含数据页、索引页等，通过控制块管理。核心管理机制包括三条链表：空闲链表（Free List）记录可用缓存页，LRU链表管理已载入页的替换策略，Flush链表跟踪待刷盘的脏页。读操作通过哈希表快速判断缓存命中，写操作先在内存修改形成脏页再异步刷盘。InnoDB还优化了传统LRU算法，通过分区解决预读失效和缓存污染问题。整体上，缓存池显著提升了数据库的读写性能。]]></description><category></category></item><item><title><![CDATA[深入理解 MySQL InnoDB Buffer Pool 的 LRU 冷热数据机制]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159250164</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159250164</guid><author>weixin_43829708</author><pubDate>Thu, 19 Mar 2026 18:05:46 +0800</pubDate><description><![CDATA[MySQL InnoDB Buffer Pool 采用定制化 LRU 机制管理内存数据页，通过冷热数据分离解决缓冲池污染问题。其核心设计包括：1) 将 LRU 链表分为 New Sublist（热数据区，占5/8）和 Old Sublist（冷数据区，占3/8）；2) 新数据页插入到 MidPoint（Old区头部）而非直接插入链表头部；3) 设置 innodb_old_blocks_time（默认1秒）防止全表扫描污染热数据；4) 优化热数据区前1/4页的移动策略减少锁竞争。这种机制有效平衡了内存利用率和]]></description><category></category></item><item><title><![CDATA[MySQL三大日志深度解析：redo log、undo log、binlog 原理与实战]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159165009</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159165009</guid><author>weixin_43829708</author><pubDate>Tue, 17 Mar 2026 14:41:05 +0800</pubDate><description><![CDATA[MySQL三大日志解析：redo log、undo log、binlog 本文深入解析MySQL核心日志体系，详细讲解三种日志的原理、作用及协同工作机制： redo log：InnoDB引擎层的物理日志，记录数据页变更，用于崩溃恢复和保证事务持久性。采用循环写入机制，通过WAL技术提升性能。 undo log：InnoDB引擎层的逻辑日志，记录数据修改前的状态，支持事务回滚和MVCC多版本并发控制，保障事务原子性。 binlog：Server层的逻辑日志，记录所有数据变更事件，用于主从复制和数据恢复。支持三]]></description><category></category></item><item><title><![CDATA[MySQL索引核心原理：B+树生成、页分裂与页合并全解析]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159119877</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159119877</guid><author>weixin_43829708</author><pubDate>Mon, 16 Mar 2026 14:35:09 +0800</pubDate><description><![CDATA[本文深入解析MySQL InnoDB引擎的B+树索引机制，重点剖析页分裂与页合并的动态维护原理。B+树通过多路平衡和叶子节点链表实现高效查询，而页分裂（满页拆分）和页合并（低利用率合并）是维持索引平衡的关键操作。文章详细阐述了这两种机制的触发条件、执行流程及性能影响，并给出优化建议：优先使用自增主键、避免随机写入、定期整理碎片。理解这些底层原理，能有效解决数据库写入抖动、查询变慢等问题，提升系统稳定性与性能。]]></description><category></category></item><item><title><![CDATA[深入剖析Redis数据类型与底层数据结构]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/159009318</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/159009318</guid><author>weixin_43829708</author><pubDate>Fri, 13 Mar 2026 14:21:04 +0800</pubDate><description><![CDATA[Redis作为高性能内存数据库，其核心在于精心设计的底层数据结构与动态编码转换机制。文章深入剖析了Redis的5种核心数据类型（String、List、Hash、Set、SortedSet）及其6种底层实现结构（哈希字典、SDS、压缩列表、双端链表、跳跃表、整数数组），揭示了Redis如何根据数据特征自动选择最优存储方案。重点解析了渐进式rehash、SDS优化、QuickList混合结构等关键技术，并总结了数据类型与底层结构的映射规则。理解这些设计原理，不仅能提升Redis使用效率，也是应对面试考察的关键]]></description><category></category></item><item><title><![CDATA[深入Redis的RDB和AOF两种持久化方式以及AOF重写机制的分析]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158924749</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158924749</guid><author>weixin_43829708</author><pubDate>Wed, 11 Mar 2026 14:23:30 +0800</pubDate><description><![CDATA[Redis提供了RDB和AOF两种持久化机制保障数据安全。RDB通过定时快照备份全量数据，恢复快但实时性差；AOF记录写命令日志，数据更安全但文件较大。AOF通过重写机制压缩日志，解决膨胀问题。Redis重启时优先加载AOF文件，若不存在则加载RDB。实际应用中，核心业务推荐AOF配合RDB备份，或使用Redis 4.0+的混合持久化功能，兼顾实时性和恢复速度。理解这两种机制的特点和适用场景，才能根据业务需求做出合理配置。]]></description><category></category></item><item><title><![CDATA[Redis主从复制核心原理：全量/增量复制与双缓冲区详解]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158846702</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158846702</guid><author>weixin_43829708</author><pubDate>Mon, 09 Mar 2026 16:21:53 +0800</pubDate><description><![CDATA[Redis主从复制是实现读写分离和数据冗余的核心机制，包含全量复制和增量复制两种模式。全量复制在首次连接或异常时触发，通过COW机制生成RDB快照，同时使用双缓冲区缓存增量命令。增量复制则依赖复制积压缓冲区实现断点续传，避免重复全量同步。关键点在于：全量复制保证数据初始化，增量复制提升效率；复制缓冲区为从节点专属，积压缓冲区全局共享。生产环境需合理配置缓冲区大小，监控主从偏移量，控制从节点数量以优化性能。]]></description><category></category></item><item><title><![CDATA[BitMap 从原理到实战：海量数据去重、排序、查询的终极方案]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158843726</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158843726</guid><author>weixin_43829708</author><pubDate>Mon, 09 Mar 2026 14:29:40 +0800</pubDate><description><![CDATA[摘要：BitMap是一种高效存储整数存在状态的数据结构，通过位运算实现O(1)复杂度的增删查操作。其核心原理是将每个整数映射到一个bit位，极大节省内存（相比传统存储可节省32倍空间）。本文详细解析了BitMap的底层实现（包括数组索引计算和位操作）、Java完整代码实现，并展示了其在大数据场景下的典型应用：海量数据去重、快速排序和存在性判断。虽然BitMap仅适用于整数且稀疏数据时可能浪费空间，但其极致的内存效率和操作速度使其成为处理亿级数据的理想选择。]]></description><category></category></item><item><title><![CDATA[Java 位运算深度解析：从原理到工程实战]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158695222</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158695222</guid><author>weixin_43829708</author><pubDate>Thu, 05 Mar 2026 14:31:51 +0800</pubDate><description><![CDATA[本文深入解析Java位运算的核心原理与实战应用。从二进制补码存储规则出发，详细讲解按位与、或、异或等运算符的底层逻辑和使用场景，提供奇偶判断、安全求均值等高频技巧，并对比算术右移与逻辑右移的区别。文章特别强调工程实践中的注意事项，包括优先使用标准库方法、边界值测试和代码可读性优化，帮助开发者避免常见陷阱。通过系统梳理位运算的&quot;道&quot;与&quot;术&quot;，既能提升性能敏感场景的处理效率，又能应对面试中的常见问题。]]></description><category></category></item><item><title><![CDATA[为什么不建议直接使用@Async注解？深度解析与最佳实践]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158616265</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158616265</guid><author>weixin_43829708</author><pubDate>Tue, 03 Mar 2026 14:50:35 +0800</pubDate><description><![CDATA[摘要：Spring Boot的@Async注解虽能快速实现异步编程，但直接使用存在严重问题。默认线程池SimpleAsyncTaskExecutor会无限创建线程导致资源耗尽，且存在异常处理困难、事务传播失效等风险。此外，同类内部调用、非public方法等7种场景会导致异步失效。最佳实践是自定义线程池替代默认实现，通过ThreadPoolTaskExecutor配置核心参数，并规范使用场景，才能安全高效地实现异步功能。]]></description><category></category></item><item><title><![CDATA[MySQL 自增主键 ID 与隐藏 row_id：原理深挖、风险剖析与工程化落地]]></title><link>https://blog.youkuaiyun.com/weixin_43829708/article/details/158502720</link><guid>https://blog.youkuaiyun.com/weixin_43829708/article/details/158502720</guid><author>weixin_43829708</author><pubDate>Sat, 28 Feb 2026 14:28:57 +0800</pubDate><description><![CDATA[本文深入解析MySQL中显式自增主键ID与隐藏row_id的核心差异及风险。显式自增ID存在ID不连续、上限耗尽等问题，需通过数据类型选型、监控和分表策略防控；而隐藏row_id作为全局共享变量，在达到6字节上限后会静默覆盖旧数据，风险更隐蔽。文章提供了风险复现方法和工程化解决方案，帮助开发者规避潜在的数据安全问题。]]></description><category></category></item></channel></rss>