<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hhkrye的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hhkrye</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hhkrye]]></copyright><item><title><![CDATA[05-06-A-Doris由浅入深详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/170139276</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/170139276</guid><author>hhkrye</author><pubDate>Thu, 05 Nov 2026 14:23:46 +0800</pubDate><description><![CDATA[Apache Doris 是易用型实时数仓代表，基于 MPP 架构与列式存储，兼容 MySQL 协议，支持秒级导入与高并发报表。其 FE/BE 分工明确：FE 负责元数据与查询优化，BE 负责存储与计算。数据按“分区+分桶”切分为 tablet，通过多副本保障高可用。支持明细、聚合、更新三种数据模型，结合向量化执行、MPP 并行计算与物化视图，实现高效分析。相比 ClickHouse 更易用，优于 ES 的聚合能力，是实时数仓的理想选择。]]></description><category></category></item><item><title><![CDATA[分布式发号器设计全解（含完整代码）]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/170049270</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/170049270</guid><author>hhkrye</author><pubDate>Wed, 04 Nov 2026 17:02:51 +0800</pubDate><description><![CDATA[本文设计并实现了一套高并发、全局唯一的分布式发号器，支持日均百万级、峰值万级QPS。核心思想为：Redis原子领段 + 本地内存自增 + 双Buffer预取 + 自适应步长 + 持久化恢复。通过INCRBY批量获取号段，避免频繁网络开销；利用双缓冲与80%预取机制保障无阻塞发号；结合自适应步长动态调节号段大小，应对流量波动；通过定期刷cursor和实例落盘确保宕机不跳号，重号窗口控制在秒级内，由唯一键约束兜底。代码可直接落地，兼顾性能、可用性与业务合规性。]]></description><category></category></item><item><title><![CDATA[09-01-A-Maven与依赖治理详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168851145</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168851145</guid><author>hhkrye</author><pubDate>Fri, 23 Oct 2026 09:43:30 +0800</pubDate><description><![CDATA[本文以真实多模块 Spring Boot 项目为案例，深入解析 Maven 依赖治理核心：通过最短路径优先与先声明优先两大调解规则，定位并解决依赖冲突；借助 dependencyManagement 与 BOM 实现版本统一管控；利用私服 Nexus 实现依赖收敛与构建可重现；结合聚合、继承结构优化工程架构，最终实现“一处修改、处处生效”的高效治理。]]></description><category></category></item><item><title><![CDATA[08-05-B-性能优化实战面试与生产事故实战]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168850385</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168850385</guid><author>hhkrye</author><pubDate>Fri, 23 Oct 2026 09:37:53 +0800</pubDate><description><![CDATA[本文聚焦性能优化实战，涵盖面试高频追问链：以P99为核心指标，强调延迟、错误率、吞吐量协同监控；提出“测量-定位-优化-验证”四步闭环，倡导按收益/成本比优先排序，避免无效优化；通过链路追踪、资源水位分析与火焰图等工具精准定位瓶颈；强调全链路压测在发现联动效应中的关键作用，助力大促前系统稳定性保障。]]></description><category></category></item><item><title><![CDATA[08-05-A-性能优化实战详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168843038</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168843038</guid><author>hhkrye</author><pubDate>Fri, 23 Oct 2026 09:33:27 +0800</pubDate><description><![CDATA[本文以商品详情页P99从800ms优化至80ms的真实案例为主线，系统讲解性能优化方法论。强调“测量先行”，通过全链路压测、流量染色与影子库实现安全验证；运用火焰图、慢SQL日志、链路追踪精准定位瓶颈；遵循“SQL→缓存→调用结构→JVM→网络”优先级分层优化，重点突破串行调用、慢查询与连接池瓶颈。结合P99等核心指标解析，揭示平均值误导性，倡导“一次一改、可回滚、可验证”的闭环实践，完整复现十步优化路径，实现性能跃迁。]]></description><category></category></item><item><title><![CDATA[08-04-B-典型业务系统设计面试与生产事故实战]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168762957</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168762957</guid><author>hhkrye</author><pubDate>Thu, 22 Oct 2026 14:05:08 +0800</pubDate><description><![CDATA[设计订单系统需从算账、数据模型、核心流程与兜底四方面入手。采用 userId 分片提升查询效率，通过状态机保障流程一致性，结合预扣库存与延迟消息实现超时关单，以幂等令牌与唯一索引防范重复下单。关键决策包括服务端算价、库存预扣、状态三件套及双保险兜底机制，兼顾高并发、一致性与可运维性。]]></description><category></category></item><item><title><![CDATA[08-04-A-典型业务系统设计详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168762659</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168762659</guid><author>hhkrye</author><pubDate>Thu, 22 Oct 2026 14:01:01 +0800</pubDate><description><![CDATA[对账像月底夫妻对账本：你记一笔我记一笔，逐笔核对，对不上的必须查清楚。本地有 渠道无渠道有 本地无金额不一致完全一致T+1 凌晨下载渠道对账单。解析为统一格式。本地支付流水导出。逐笔核对引擎。差异类型。长款?实际是本地成功渠道失败→ 冲正, 订单回退, 通知用户。短款 / 掉单。]]></description><category></category></item><item><title><![CDATA[08-03-B-高可用设计面试与生产事故实战]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168762298</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168762298</guid><author>hhkrye</author><pubDate>Thu, 22 Oct 2026 13:54:31 +0800</pubDate><description><![CDATA[本文系统梳理高可用设计面试核心考点，聚焦“可用性量化”“故障预算”“RTO/RPO”三大维度，结合真实事故复盘，揭示从目标设定、成本权衡到容灾演练的完整闭环。通过三条追问链，深入剖析冗余与故障转移的本质：消灭单点、跨域隔离、自动切换，并强调“量化思维”与“工程落地”能力——真正高可用，是数字驱动、流程闭环、持续验证的体系化工程。]]></description><category></category></item><item><title><![CDATA[08-03-A-高可用设计详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168634045</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168634045</guid><author>hhkrye</author><pubDate>Wed, 21 Oct 2026 09:28:49 +0800</pubDate><description><![CDATA[高可用设计核心是“承认故障必然发生”，通过冗余（应用、数据、机房、链路）、故障转移（自动/手动）、降级预案（预案库+一键执行）三板斧控制影响。量化可用性用SLA“几个9”，结合故障预算管理发布节奏。多机房与异地多活实现跨地域容灾，单元化架构保障独立闭环。通过混沌工程主动注入故障，验证系统韧性，确保真实故障下RTO、RPO达标。]]></description><category></category></item><item><title><![CDATA[08-02-B-秒杀系统设计面试与生产事故实战]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168633938</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168633938</guid><author>hhkrye</author><pubDate>Wed, 21 Oct 2026 09:27:38 +0800</pubDate><description><![CDATA[秒杀系统设计面试高频考察流量漏斗、防超卖、防刷与热点隔离。核心架构为：CDN挡读、网关限流、Redis Lua原子扣库存（防超卖）、MQ削峰、延迟消息回补库存。实战中易发超卖资损、秒杀拖垮全站、库存未回补、被脚本刷空等事故。预防关键：Lua原子操作、独立集群隔离、幂等回补、四层防刷。压测需模拟瞬时尖峰，验证成交数≤库存。一句话教训：不原子扣减=资损，无隔离=全站崩。]]></description><category></category></item><item><title><![CDATA[08-02-A-秒杀系统设计详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168633736</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168633736</guid><author>hhkrye</author><pubDate>Wed, 21 Oct 2026 09:26:48 +0800</pubDate><description><![CDATA[秒杀系统设计核心是构建流量漏斗：通过CDN静态化、网关限流、Redis原子扣减（推荐Lua脚本）、MQ削峰，层层过滤请求，确保仅1000个有效订单到达数据库。防超卖采用Redis Lua脚本实现判断+扣减+记录的原子操作，避免库存超卖；防刷则通过验证码、签名、限流、黑名单四层防护。热点隔离保障秒杀故障不影响正常业务，整体实现高并发下“快速拒绝99%失败请求，精准成交1%成功订单”。]]></description><category></category></item><item><title><![CDATA[08-01-B-高并发方法论面试与生产事故实战]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168551815</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168551815</guid><author>hhkrye</author><pubDate>Tue, 20 Oct 2026 14:57:48 +0800</pubDate><description><![CDATA[本文为《高并发方法论》配套实战篇，聚焦面试高频题与生产事故。通过“五大手段”连贯问答（缓存、异步、池化、预计算、分片），解析高并发设计逻辑与使用顺序；结合QPS演进路线（1千→100万）与容量规划公式，指导系统扩容。强调压测需全链路、影子数据隔离，但指出压测达标不等于上线无忧——流量分布、数据、依赖、时间差异仍需监控与灰度兜底。最后以“缓存雪崩全穿透、异步丢消息、连接池耗尽”等典型事故复盘，提炼“按瓶颈顺序优化、预防胜于救火”的核心原则。]]></description><category></category></item><item><title><![CDATA[08-01-A-高并发方法论详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168551536</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168551536</guid><author>hhkrye</author><pubDate>Tue, 20 Oct 2026 14:56:42 +0800</pubDate><description><![CDATA[高并发是一套层层递进的方法论，核心是“找瓶颈、消瓶颈”。五大手段依次为：缓存挡读（降数据库压力）、异步削峰（主链路提速）、池化复用（降低资源开销）、预计算提前算（解决计算瓶颈）、分片水平拆（突破单机上限）。按顺序使用，结合容量规划与全链路压测，可支撑QPS从千级到百万级演进。关键在于遵循Amdahl定律，优先优化瓶颈环节。]]></description><category></category></item><item><title><![CDATA[23-A-访问者模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168525600</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168525600</guid><author>hhkrye</author><pubDate>Tue, 20 Oct 2026 09:04:31 +0800</pubDate><description><![CDATA[访问者模式解决数据结构稳定却需频繁新增操作的问题，通过“双分派”机制将操作从元素类中抽离。以订单行项目为例，避免重复的instanceof判断，实现开闭原则：新增类型只需扩展元素类，新增操作仅需新增Visitor类。其核心是两次多态调用——元素选择访问者，访问者根据元素类型精准执行对应逻辑。虽强大易用，但滥用会导致代码复杂、维护困难，应谨慎使用。]]></description><category></category></item><item><title><![CDATA[22-A-模板方法模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168525302</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168525302</guid><author>hhkrye</author><pubDate>Tue, 20 Oct 2026 09:01:54 +0800</pubDate><description><![CDATA[模板方法模式通过定义流程骨架（final模板方法）与抽象/钩子方法，解决“流程一致、细节各异”场景的复用难题。核心价值在于强制保证审计、告警等横切逻辑不被绕过，避免因复制代码导致遗漏。结合好莱坞原则与“模板+回调”思想（如JdbcTemplate），既保持灵活性又提升可维护性，适用于报表导出、对账、数据同步等典型业务。]]></description><category></category></item><item><title><![CDATA[21-A-策略模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168524995</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168524995</guid><author>hhkrye</author><pubDate>Tue, 20 Oct 2026 09:00:18 +0800</pubDate><description><![CDATA[策略模式通过“接口+抽象模板+工厂”组合，解决多选一场景的代码膨胀问题。核心思想：用supportType()自注册实现策略自动映射，结合Spring集合注入与模板方法，消灭冗长if-else。公共逻辑（校验、精度、审计）集中管理，子类仅实现差异部分，支持开闭原则、独立测试与高可维护性。生产级骨架可直接复用，是处理计费、限流等场景的高效方案。]]></description><category></category></item><item><title><![CDATA[20-A-状态模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168440942</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168440942</guid><author>hhkrye</author><pubDate>Mon, 19 Oct 2026 13:51:07 +0800</pubDate><description><![CDATA[状态模式通过将订单状态及其行为封装为独立类，实现状态迁移规则的集中管理。每个状态类定义自身可接受的事件及迁移逻辑，非法迁移由默认reject方法统一拦截，避免散落的switch语句带来的维护难题。结合Spring StateMachine可进一步实现可视化状态机，确保状态流转的合法性与一致性，提升系统可扩展性与可靠性。]]></description><category></category></item><item><title><![CDATA[19-A-观察者模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168440822</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168440822</guid><author>hhkrye</author><pubDate>Mon, 19 Oct 2026 13:49:36 +0800</pubDate><description><![CDATA[观察者模式通过事件总线解耦发布者与订阅者，实现订单支付成功后积分、通知、统计等联动。Spring 事件机制中，@EventListener 默认同步执行，易阻塞主流程；需用 @Async 异步化非关键逻辑。关键点在于使用 @TransactionalEventListener 的 AFTER_COMMIT 模式，确保事务提交后才触发事件，避免因事务回滚导致消息错发或数据不一致。领域事件应自包含数据，避免订阅者反查。最终明确：进程内用 Spring 事件，跨系统用 MQ，划分清晰边界。]]></description><category></category></item><item><title><![CDATA[18-A-备忘录模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168440726</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168440726</guid><author>hhkrye</author><pubDate>Mon, 19 Oct 2026 13:46:52 +0800</pubDate><description><![CDATA[备忘录模式在不破坏封装的前提下，实现对象状态的保存与恢复。通过发起人（Originator）、备忘录（Memento）和管理者（Caretaker）三者协作，支持订单改价历史记录与一键回滚。备忘录仅对外暴露存取接口，管理者只存不读，确保状态安全。结合不可变对象与栈结构，高效实现撤销、草稿箱、事件溯源等场景，避免状态散乱与重复代码。]]></description><category></category></item><item><title><![CDATA[17-A-中介者模式详解]]></title><link>https://blog.youkuaiyun.com/hhkrye/article/details/168440669</link><guid>https://blog.youkuaiyun.com/hhkrye/article/details/168440669</guid><author>hhkrye</author><pubDate>Mon, 19 Oct 2026 13:44:30 +0800</pubDate><description><![CDATA[中介者模式通过引入中介者，将对象间的网状调用转化为星形结构，解决模块间高耦合、修改牵连广的问题。以支付成功联动为例，订单、库存、积分、通知等模块不再直接互调，而是统一通过中介者编排流程，实现逻辑集中、依赖降维。结合MQ的异步解耦，更可扩展为分布式场景下的系统级中介者，提升可维护性与可扩展性。]]></description><category></category></item></channel></rss>