<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fjkxyl的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fjkxyl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fjkxyl]]></copyright><item><title><![CDATA[Redis 跳表技术博客：为什么不选用红黑树和 B+ 树]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148213614</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148213614</guid><author>fjkxyl</author><pubDate>Thu, 01 Jan 2026 12:03:37 +0800</pubDate><description><![CDATA[跳表是一种随机化数据结构，通过多个层级链表实现快速查找、插入和删除操作。跳表的核心思想是利用空间换时间，通过增加多层索引，使得查找时间复杂度由链表的 O(n) 降低到 O(log n)。跳表的设计相对简单，易于维护。基础链表层：底层是普通链表，存储所有元素。索引层：每层通过随机化算法选择部分节点，形成更高层级的链表。头节点：起始节点，每层都由头节点开始。红黑树是一种自平衡二叉搜索树。]]></description><category></category></item><item><title><![CDATA[Elasticsearch 读写流程深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148382195</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148382195</guid><author>fjkxyl</author><pubDate>Mon, 02 Jun 2025 14:58:48 +0800</pubDate><description><![CDATA[实时 vs 吞吐：Translog 持久化与 Refresh 机制的协作扩展性 vs 一致性：分片化存储与可调一致性模型灵活性 vs 效率：DSL 的丰富表达能力与倒排索引/列存优化所有分布式系统都是妥协的艺术。Elasticsearch 通过分层设计（Translog/Lucene Segment）、异步协作（副本复制）、智能调度（合并策略/缓存）等机制，在工程复杂度与性能之间找到了黄金平衡点。]]></description><category></category></item><item><title><![CDATA[ShardingSphere 分片策略深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148379389</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148379389</guid><author>fjkxyl</author><pubDate>Mon, 02 Jun 2025 10:49:25 +0800</pubDate><description><![CDATA[最优分片min⁡α×查询延迟β×扩容成本γ×管理复杂度\text{最优分片} = \min\left(\alpha \times \text{查询延迟} + \beta \times \text{扩容成本} + \gamma \times \text{管理复杂度}\right)最优分片minα×查询延迟β×扩容成本γ×管理复杂度其中αβγ1αβγ1，根据业务特性调整权重。]]></description><category></category></item><item><title><![CDATA[高并发计数器LongAdder 实现原理与使用场景详解]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148290002</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148290002</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 19:16:22 +0800</pubDate><description><![CDATA[设计要点实现方案解决的问题竞争分散分片 Cell 数组降低 CAS 失败率伪共享预防@Contended 注解提升缓存利用率动态扩容按需创建 Cell平衡性能与内存延迟初始化初始使用 base 变量减少内存开销最终一致性sum() 合并所有 Cell保证最终结果正确性通过理解 LongAdder 的设计哲学和实现细节，开发者可以在高并发场景中做出更优的技术选型，在保证线程安全的前提下实现5-10 倍的性能提升。]]></description><category></category></item><item><title><![CDATA[Redis集群大Key问题深度解决方案]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148289904</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148289904</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 18:59:27 +0800</pubDate><description><![CDATA[大Key判定标准数据类型大Key标准典型场景String缓存HTML片段、序列化对象Hash/Set元素数量 > 5000用户标签集合、商品属性List元素数量 > 10000消息队列、操作日志ZSet元素数量 > 5000排行榜、带权重数据集合。]]></description><category></category></item><item><title><![CDATA[Redis集群热点Key问题解决方案]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148289645</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148289645</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 18:43:42 +0800</pubDate><description><![CDATA[通过以上方案的系统性实施，可有效应对Redis集群中的热点Key问题，保障系统的高可用性。在应用层对热点Key进行本地缓存，减少对Redis的直接访问。在代理中间件（如Twemproxy）中增加流量分析模块。在客户端代码中嵌入统计逻辑，记录每个Key的访问次数。利用Redis Cluster特性强制Key分布。将单个Key拆分为多个子Key，分散到不同节点。：从业务层面减少对单一Key的依赖。读多写少的热点Key（如商品详情）： 利用从节点分担读压力。]]></description><category></category></item><item><title><![CDATA[深入解析 Tomcat 线程管理机制：从设计思想到性能调优]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148289170</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148289170</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 18:06:18 +0800</pubDate><description><![CDATA[参数推荐值说明maxThreadsCPU 核心数 × 4根据压测结果调整100~500避免队列过长导致 OOMCPU 核心数与 Poller 负载均衡相关。]]></description><category></category></item><item><title><![CDATA[深入解析 CountDownLatch、Semaphore 和CyclicBarrier]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148288556</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148288556</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 17:51:45 +0800</pubDate><description><![CDATA[特性Semaphore核心目标等待一组操作完成控制资源并发访问多线程协同到达屏障点重用性否（一次性）是（许可可释放）是（自动或手动重置）底层实现AQS 共享锁AQS 共享锁适用场景主从协作（一等多）资源池化/限流（多对多）多线程分阶段协作（多对多）异常处理无特殊异常需处理 InterruptedException需处理 BrokenBarrierException性能影响低（仅计数器操作）中等（CAS 竞争）高（锁竞争 + 条件变量）]]></description><category></category></item><item><title><![CDATA[深入解析 Spring @Transactional 的事务开启机制]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148288290</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148288290</guid><author>fjkxyl</author><pubDate>Wed, 28 May 2025 17:27:43 +0800</pubDate><description><![CDATA[条件事务是否开启？说明方法标记为 @Transactional是由代理对象和事务管理器触发，与数据库操作无关。传播行为为 REQUIRES_NEW是强制开启新事务。传播行为为 SUPPORTS否（若无现有事务）仅在存在事务时加入。使用 JDBC 事务管理器是（立即获取连接）即使无数据库操作，仍会获取连接并提交空事务。使用 JPA 事务管理器是（延迟获取连接）事务被创建，但未实际获取连接（无数据库操作时）。]]></description><category></category></item><item><title><![CDATA[分库分表深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148213330</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148213330</guid><author>fjkxyl</author><pubDate>Sun, 25 May 2025 20:53:16 +0800</pubDate><description><![CDATA[分库是将数据库从单实例扩展为多实例的架构部署方式。一种常见方式是结合分表逻辑，将分表数据分别存储到不同的数据库实例中。分库后的数据库实例可以分布在不同的物理节点上，独立运行并扩展。在分库分表实践中，中间件扮演了举足轻重的角色，它们屏蔽了分布式架构的复杂性，简化了开发人员的实现难度。：随着业务增长，最初设计的分片规则可能无法满足需求。在进行分库分表的实际实施过程中，需要面对一些挑战性问题。：将一个表根据某种规则（如主键范围或哈希值）分成多张子表，数据均匀分布。：按字段将一个表分拆为多张表，按功能属性划分。]]></description><category></category></item><item><title><![CDATA[Redis Cluster动态扩容：架构原理与核心机制解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148115133</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148115133</guid><author>fjkxyl</author><pubDate>Wed, 21 May 2025 14:25:31 +0800</pubDate><description><![CDATA[Redis Cluster扩容是分布式系统设计的终极考验，其技术深度体现在：数学模型的工程实现哈希槽分配算法与网络拓扑的动态适配，本质是空间换时间的工程哲学。数据一致性的保障机制通过MIGRATE命令的原子性、双写缓冲区的设计，实现最终一致性的精密控制。生产环境的容错设计脑裂防御、热点处理、内存优化等机制，构建了反脆弱性系统架构。掌握这些核心技术，意味着获得了构建百万级QPS弹性系统的能力。]]></description><category></category></item><item><title><![CDATA[Redis String 设计思想深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148114502</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148114502</guid><author>fjkxyl</author><pubDate>Wed, 21 May 2025 14:11:50 +0800</pubDate><description><![CDATA[Redis String 的设计史本质是工程领域「不可能三角」的求解过程：在功能扩展性、时间效率、空间效率之间寻找动态平衡点。接口抽象的适度性：用最简接口覆盖80%场景，剩余20%通过组合模式解决演进策略的渐进性：保持核心接口稳定，通过扩展机制支持新需求工程妥协的艺术性：明确「不做什么」比「做什么」更具挑战性这种设计哲学对现代系统架构的启示在于：真正的架构之美不在于功能的堆砌，而在于用最精简的元素构建可扩展的基石。]]></description><category></category></item><item><title><![CDATA[Raft 协议：分布式一致性算法的核心思想]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148030431</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148030431</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 16:42:33 +0800</pubDate><description><![CDATA[核心结论易用性：Raft 通过明确角色和任期机制，大幅降低分布式一致性实现难度。强一致性：通过多数派提交和日志匹配原则，确保系统状态严格一致。适用场景：适合需要强一致性的系统（如配置中心、分布式锁服务）。]]></description><category></category></item><item><title><![CDATA[MySQL UPDATE 执行流程全解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148027302</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148027302</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 13:23:30 +0800</pubDate><description><![CDATA[MySQL 的UPDATE执行流程是解析 → 优化 → 锁管理 → 数据修改 → 日志记录的精密协作过程。优先使用索引，避免全表扫描。控制事务粒度，减少锁竞争。合理配置日志策略，平衡性能与数据安全。通过结合EXPLAIN分析和索引优化，开发者可以高效定位性能瓶颈。下一篇我们将深入探讨 InnoDB 的 MVCC 实现原理，敬请期待！]]></description><category></category></item><item><title><![CDATA[MySQL 查询执行流程全解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148026502</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148026502</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 12:17:33 +0800</pubDate><description><![CDATA[MySQL 查询执行流程是 解析 → 优化 → 执行 的精密协作过程。优先使用覆盖索引，避免回表开销。控制连接条件顺序，利用小表驱动大表。避免隐式类型转换，防止索引失效。通过结合EXPLAIN分析和索引优化，开发者可以高效定位性能瓶颈。下一篇我们将深入探讨 InnoDB 的 MVCC 实现原理，敬请期待！]]></description><category></category></item><item><title><![CDATA[MyISAM 的索引存储机制：非聚簇索引的深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148025454</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148025454</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 11:12:31 +0800</pubDate><description><![CDATA[MyISAM 索引的核心结论非聚簇索引的本质：• 数据与索引分离，索引叶子节点存储数据指针。• 主键索引与二级索引逻辑一致，无物理存储差异。性能特征：• 优势：插入效率高，索引重建成本低。• 劣势：查询需两次 I/O，范围查询性能差。]]></description><category></category></item><item><title><![CDATA[MySQL 聚簇索引与非聚簇索引：底层原理与实战深度解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148025210</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148025210</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 10:58:56 +0800</pubDate><description><![CDATA[关键结论聚簇索引 是数据存储的物理顺序，主键设计直接影响性能。非聚簇索引 需回表查询，适合加速特定字段的筛选。覆盖索引 和 最左前缀原则 是优化查询的核心手段。]]></description><category></category></item><item><title><![CDATA[深入理解 Java 中的 volatile：从底层原理到实践]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148024647</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148024647</guid><author>fjkxyl</author><pubDate>Sat, 17 May 2025 10:29:13 +0800</pubDate><description><![CDATA[volatile通过 MESI 协议 维护缓存一致性，通过 内存屏障 保证可见性和有序性，最终通过 happens-before 规则 定义多线程间的内存语义。• 核心价值：轻量级同步，适用于状态标志、双重检查锁定等场景。• 局限性：无法替代锁或原子类，需根据场景选择合适方案。理解volatile的底层原理，能帮助开发者写出更高效、更安全的并发代码。在下一篇博客中，我们将深入探讨与volatile的协作机制。]]></description><category></category></item><item><title><![CDATA[MySQL锁机制详解与加锁流程全解析]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148013380</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148013380</guid><author>fjkxyl</author><pubDate>Fri, 16 May 2025 18:04:53 +0800</pubDate><description><![CDATA[深入理解MySQL锁机制需要结合具体存储引擎实现，其中InnoDB的锁机制设计充分体现了性能与一致性的平衡。通过合理使用索引、优化事务逻辑、选择合适隔离级别，可以显著降低锁冲突概率。建议开发者在关键业务操作前进行锁分析，使用EXPLAIN验证执行计划，结合监控锁状态，最终构建高性能、高并发的数据库应用。]]></description><category></category></item><item><title><![CDATA[深入解析ZAB协议：ZooKeeper的分布式一致性核心]]></title><link>https://blog.youkuaiyun.com/fjkxyl/article/details/148012406</link><guid>https://blog.youkuaiyun.com/fjkxyl/article/details/148012406</guid><author>fjkxyl</author><pubDate>Fri, 16 May 2025 17:24:05 +0800</pubDate><description><![CDATA[ZAB协议通过高效的Leader选举、事务广播和恢复机制，在分布式系统中实现了强一致性。尽管存在单点写入的性能限制，但其在ZooKeeper等场景下的稳定性和成熟度使其成为工业界的重要选择。理解ZAB的设计哲学，有助于开发者更深入地掌握分布式协调服务的底层逻辑。进一步学习建议阅读ZooKeeper源码中的和模块。使用ZooKeeper命令行工具观察事务日志（通过Jepsen等工具测试ZooKeeper的分布式一致性边界。]]></description><category></category></item></channel></rss>