- 博客(2365)
- 资源 (19)
- 收藏
- 关注

原创 小工匠聊架构文章一览【不间断持续更新】
文章摘要 本文系统梳理了微服务架构与分布式技术的核心知识体系,包含三大板块: 微服务布道系列:详细解析从单体架构到服务化的演进路径,涵盖服务注册发现、RPC调用、监控追踪等12个核心主题; 分布式理论篇:深入剖析CAP定理、BASE理论、Paxos算法等分布式系统基石理论; 分布式实战篇:聚焦事务、服务、缓存、存储四大场景,提供两阶段提交、TCC模型、热点key治理等20余种解决方案。文中配有清晰的技术架构图,每个主题均附详细技术文章链接,形成完整的技术图谱。
2020-11-12 00:01:55
85946
10
原创 Maven - Maven 项目中如何覆盖传递依赖以修复漏洞版本
本文介绍了如何通过Maven依赖调解机制解决Java项目中第三方依赖传递的安全漏洞问题。针对案例中tlog-all-spring-boot-starter依赖的hutool-core:5.8.11存在已知漏洞的情况,提出了三种解决方案:直接声明安全版本、使用dependencyManagement统一管理版本、排除旧版本后显式引入新版本,并详细说明了每种方法的使用场景和实现方式。最后强调了通过mvn dependency:tree命令验证版本覆盖效果的重要性,并建议在CI/CD流程中集成漏洞扫描工具以持续监
2025-09-15 06:15:00
733
原创 架构思维:分布式缓存实战
本文探讨了高并发系统中缓存面临的三大核心问题及解决方案。针对缓存雪崩问题,提出了随机过期时间和二级缓存策略;对于缓存穿透问题,介绍了空值缓存和布隆过滤器两种防范方法;关于缓存一致性问题,分析了双写模式和删除策略的优劣。文章通过具体代码示例,展示了如何在实际开发中应用这些解决方案,为构建高性能、高可用的缓存系统提供了实用指导。
2025-09-15 05:30:00
1126
原创 架构思维: 高并发场景下的系统限流实战
本文介绍了分布式系统中常见的限流算法及其实现。首先阐述了限流的重要性,它能保护核心服务、防止资源耗尽、维持系统稳定性。然后详细讲解了两种主流限流算法:计数器法(固定窗口算法)通过统计单位时间内的请求数量实现限流控制,但存在临界问题;令牌桶算法则允许一定流量突发,更适合实际业务场景。文章提供了完整的Java代码实现,包括线程安全的计数器限流器和基于Guava的令牌桶实现,并附有使用示例和注意事项。这些限流技术可有效应对突发流量或恶意攻击,保障系统高可用性。
2025-09-14 22:27:39
337
原创 Redis缓存高可用实战:三种高可用方案详解
Redis缓存高可用方案解析 本文探讨了Redis高可用的三种主流实现方案。首先分析了缓存高可用的必要性,指出单点故障会导致数据库压力剧增和系统崩溃风险。随后详细介绍了三种解决方案: 主从复制方案:通过"一主多从"架构实现数据备份和读写分离,但需要手动故障转移 Sentinel方案:官方推荐的自动故障转移方案,具备监控、通知和自动主从切换能力 集群方案:通过数据分片实现水平扩展,同时支持自动故障转移 文章重点阐述了主从复制的实现原理、配置步骤和Java读写分离实现代码,并比较了各方案的适
2025-09-14 08:15:00
864
原创 架构思维:深入理解一致性哈希原理、实现与应用场景
摘要: 一致性哈希算法解决了分布式缓存系统中节点动态增减导致的大规模数据迁移问题。相比传统哈希取模方式,它通过哈希环模型(0~2^32-1)将节点和数据均匀分布,仅需重新映射少量数据(约1/n)。核心实现包括虚拟节点(解决数据倾斜)和顺时针查找机制(TreeMap.tailMap()高效定位)。Java代码示例展示了虚拟节点管理及数据路由逻辑,显著提升了系统伸缩性。典型场景下,节点宕机仅影响相邻区间数据迁移(如D节点数据迁移至A),而其他节点数据保持稳定。
2025-09-14 05:45:00
767
原创 架构思维:深入理解缓存失效策略
本文深入探讨了缓存失效策略及其实现方案。首先介绍了三大核心策略体系:页面置换算法(FIFO、LRU、LFU)、Redis内存淘汰策略(如allkeys-lru)和过期策略(定时/惰性/定期)。随后重点讲解了LRU缓存的两种实现方式:基于LinkedHashMap的简化方案和基于双向链表+HashMap的完整实现。后者通过维护访问顺序的双向链表和快速查找的哈希表,达到了O(1)时间复杂度的读写操作。文章提供了详细的Java代码示例,包括节点结构设计、容量管理和访问顺序维护等关键实现细节,为构建高性能缓存系统提
2025-09-13 08:30:00
691
原创 架构思维:优雅解决缓存三大难题——穿透、击穿与雪崩
高并发系统中的缓存三大问题及解决方案 缓存穿透、击穿和雪崩是影响高并发系统稳定性的三大关键问题。缓存穿透指恶意请求绕过缓存直接访问数据库,可通过布隆过滤器或缓存空对象解决;缓存击穿是热点数据失效导致大量请求直达数据库,可采用互斥锁或永不过期策略;缓存雪崩是大量缓存同时失效引发的数据库压力,可通过随机过期时间或多级缓存缓解。针对不同场景,需要结合具体业务特点选择合适的技术方案,如布隆过滤器适合判断数据不存在,而互斥锁适合保护热点数据重建过程。
2025-09-13 06:30:00
1000
原创 架构思维:分布式系统中的缓存全景图
本文系统梳理了分布式系统中的四大缓存层级,包括前端缓存、网络传输缓存、服务端缓存和数据库缓存。前端缓存通过浏览器存储和本地存储加速用户访问;网络传输层利用CDN和Nginx缓存静态资源;服务端缓存分为本地缓存(如Guava Cache)和分布式缓存(如Redis),适用于高频访问数据;数据库缓存(如MyBatis二级缓存)因一致性问题需谨慎使用。最佳实践建议根据场景选择合适的缓存技术,注意缓存更新策略和数据一致性。缓存设计需权衡性能与一致性,避免缓存穿透、雪崩等风险。
2025-09-12 06:30:00
1263
原创 技术管理:从写代码到带团队的认知鸿沟
摘要: 本文围绕技术管理中的核心问题展开,从团队协作、事故处理到成员成长等维度提出方法论。 引导而非解答:资深工程师应通过提问引导新人自主解决问题,避免成为团队瓶颈,同时提升成员能力。 事故责任文化:追责应聚焦系统性改进(如“5 Why”分析),而非惩罚个人,以建立信任与学习型团队。 A/B测试原则:数据驱动决策,需注意样本公平性、多维度分析及结果收敛性,避免直觉误导。 成员成长策略:管理者需摆脱“静态思维”,通过授权与反馈帮助成员突破现有职级能力。 意见反馈技巧:提意见需注重时机、场合与方式,以“观察-影
2025-09-12 05:15:00
767
原创 架构思维:缓存与数据库一致性实战:先更新数据库还是先更新缓存?
摘要:本文探讨高并发系统中缓存一致性难题,重点分析四种主流方案:先更新数据库再更新缓存(存在缓存失败风险)、先删缓存再更新数据库(并发时可能缓存旧数据)、Cache Aside Pattern(推荐方案,先更新DB再删缓存)以及延迟双删策略(高一致性场景)。通过Java代码示例展示了每种方案的实现,指出Cache Aside Pattern因其轻量化、惰性加载和易失败处理的优势成为最佳实践,而延迟双删适用于对一致性要求极高的场景。文章强调缓存与数据库双系统间的原子性缺失是核心问题根源。
2025-09-11 06:15:00
2391
原创 架构思维:用 Redis 实现一个生产级的 Java 分布式锁_从入门到 RedLock 高可用方案
本文介绍了如何用Java实现一个生产级的Redis分布式锁,从基础实现到高级优化。首先分析了分布式锁必须满足的五大特性:互斥性、超时释放、可重入性、高性能高可用和安全性。然后逐步优化实现方案:从存在缺陷的SETNX基础版,到原子化SET命令改进版,最终通过Lua脚本实现安全的“谁加锁谁解锁”机制。最后针对Redis集群环境,提出RedLock算法解决异步复制导致的锁失效问题。文章提供了完整的Java代码示例,涵盖UUID生成、原子操作和Lua脚本等关键实现细节。
2025-09-11 00:30:00
1112
原创 架构思维:分布式锁实战指南_三种主流实现方案详解
分布式锁技术对比分析 分布式锁是解决多服务实例并发访问共享资源的关键技术。主要实现方式包括: 数据库方案:利用唯一约束实现,实现简单但性能低,存在单点故障风险 Redis方案:基于SETNX命令,性能优异但需处理锁续约和过期问题 Zookeeper方案:通过临时顺序节点实现,可靠性高但性能相对较低 核心应用场景为电商秒杀等高并发业务,解决超卖问题。选择方案时需要权衡性能、可靠性和实现复杂度,Redis方案在大多数场景下是较优选择。
2025-09-10 06:45:00
2072
原创 架构思维:落地TCC分布式事务模型
TCC(Try-Confirm-Cancel)是一种分布式事务模型,通过业务层面的两阶段提交解决微服务架构下的数据一致性问题。其核心分为Try阶段(资源预留)、Confirm阶段(提交操作)和Cancel阶段(回滚操作),需保证后两者的幂等性。相比传统2PC/XA,TCC具有更高性能(无长事务阻塞)和更细粒度控制(业务层面),但侵入性强,需改造业务代码。典型应用场景如电商支付流程(订单、库存、积分等操作)。开源框架如Tcc-transaction和Seata提供了TCC实现支持。TCC适合高并发场景,通过最
2025-09-10 05:15:00
1549
原创 架构思维:MySQL 数据库实现 XA 规范原理解析
MySQL中的XA规范是两阶段提交(2PC)协议的重要实现,分为内部XA和外部XA两种形式。内部XA用于保障Binlog与Redo Log的一致性,通过XID关联事务状态,确保崩溃恢复时数据一致(以Binlog为准)。外部XA支持跨数据库实例的分布式事务,由应用层作为协调者,通过XA接口协调多个资源管理器。内部XA对开发者透明,而外部XA需要显式调用XA接口实现跨库事务管理,两者共同确保MySQL在分布式场景下的数据一致性。
2025-09-09 06:15:00
834
原创 架构思维:从2PC到3PC:分布式事务一致性协议的演进与实践指南
摘要: 两阶段提交(2PC)和三阶段提交(3PC)是分布式系统中保证数据一致性的核心协议。2PC通过协调者分两阶段(准备与提交)管理事务,但存在同步阻塞、单点故障和数据不一致风险。3PC在2PC基础上引入超时机制,将准备阶段拆分为CanCommit和PreCommit阶段,减少阻塞并提升容错性。文章通过Java代码示例展示了2PC的实现逻辑,并对比分析了两种协议的优缺点,为理解分布式事务提供了实践参考。
2025-09-09 04:45:00
1139
原创 SpringBoot - Spring 资源加载全解析:ResourceLoader 与 ResourceUtils 的正确打开方式
Spring 资源加载:ResourceLoader 与 ResourceUtils 的核心解析 摘要: Spring 通过 Resource 接口统一抽象各类资源访问,ResourceLoader 和 ResourceUtils 是其核心工具。ResourceLoader 是策略模式的资源加载器,支持 classpath、file、http 等多种协议,能够根据路径字符串返回 Resource 对象;ResourceUtils 则是静态工具类,提供路径解析和转换功能。关键区别在于:ResourceLoad
2025-09-08 19:30:00
1021
原创 架构思维:分布式事务_基于本地消息表的最终一致性方案
本文介绍了分布式事务在微服务架构中的重要性,并以电商下单场景为例,详细讲解了基于本地消息表的最终一致性解决方案。文章首先通过伪代码展示了典型分布式事务问题,然后对比了主流分布式事务方案,重点实现了基于本地消息表+消息队列的技术方案。该方案通过本地事务保证原子性,利用消息队列和补偿机制确保最终一致性,包含完整的Java代码示例、数据库表设计和系统时序图,具有高可用、高性能的特点,是电商等分布式系统的理想选择。
2025-09-08 05:30:00
781
原创 架构思维:重温限流算法原理与实战
文章摘要:限流是保障高并发系统稳定的核心手段。本文深入解析四大主流限流算法:计数器算法简单直接但存在临界问题;滑动窗口算法通过细分时间窗口解决临界问题;漏桶和令牌桶算法提供更精细的流量控制。重点剖析了计数器算法的实现代码及缺陷,并对比了固定窗口与滑动窗口的特性差异。这些算法各有适用场景,合理选择能有效应对突发流量,防止系统过载,是构建高可用架构的关键技术。
2025-09-07 23:09:35
1183
原创 架构思维:架构师视角的 FullGC 治理
摘要:频繁FullGC问题本质是架构缺陷在内存层面的表现,而非单纯的JVM参数问题。本文提出架构师应建立四层思维模型:业务层关注流量与数据规模、架构层优化组件设计、JVM层合理配置、代码层规范内存使用。通过缓存架构优化(分片+字段裁剪)、数据流改造(游标/分页处理)等架构级方案,从根源预防FullGC。强调建立数据驱动的监控体系,通过业务指标、JVM指标、资源指标的三维联动,实现精准根因定位与优化效果验证。优秀架构师的价值在于通过系统化设计避免FullGC发生,
2025-09-07 22:31:09
652
原创 LLM - MCP:打破AI孤岛,构建无缝连接的智能应用生态
摘要: AI大语言模型(LLM)在实际应用中面临"数据孤岛"和"缺失手脚"两大困境——无法实时获取上下文数据且缺乏执行能力。现有方案(如RAG和Function Calling)存在检索碎片化、维护成本高等局限。Anthropic推出的MCP(模型上下文协议)通过标准化接口连接AI与外部工具,成为AI落地的"USB-C接口"。其核心是Tools工具机制,支持动态调用API(如GitHub创建PR、Figma转代码),并兼容多平台。MCP因解决执行痛
2025-09-06 06:45:00
745
原创 MCP Gateway:零侵入式 API 到 MCP 协议的转换网关
MCP Gateway是一个轻量级开源网关服务,旨在帮助个人和企业快速将现有API转换为符合MCP协议的服务,无需代码改造。相较于现有方案如Higress,它具有更低接入成本、平台中立性和轻量化特点,支持通过YAML配置实现API转换,并提供开箱即用的Web管理界面。该项目采用Go语言开发,支持Docker一键部署,已在生产环境投入使用。核心功能包括反向代理存量API、配置驱动转换和内置管理平台,适合快速验证MCP生态场景。用户可通过GitHub获取源码和文档,使用Docker命令即可快速启动服务。
2025-09-05 06:45:00
1254
1
原创 LLM - 解读Tool Calling的原理和常见认知误区
Tool Calling是大模型连接外部工具的智能调度协议,通过两次调用实现"伪调用":首先生成结构化工具参数,再由程序执行并返回结果。它突破了大模型知识静态、无操作能力等局限,广泛应用于客服、数据分析等场景。开发者需避免三大误区:大模型不能直接执行API、不提升智能水平、需显式工程实现。这项技术正改变AI产品形态,使其从"纯对话"升级为"行动派",但核心仍依赖工程设计的精妙闭环。
2025-09-05 05:30:00
992
原创 LM - 从 Tool Calling 到 MCP 协议
摘要:MCP协议——大模型与外部系统的统一接口 本文深入探讨了大模型工具调用(Tool Calls)的技术原理及其标准化协议MCP。Tool Calls使大模型能够通过两次交互(决策调用和执行反馈)与外部系统连接,解决实时数据获取问题。然而,不同厂商(如OpenAI、Anthropic、Gemini)的工具调用格式差异导致开发适配成本剧增。MCP协议应运而生,作为AI领域的"USB-C接口",它统一了工具调用的请求/响应格式,包含工具描述、调用请求和执行结果三部分标准结构。通过MCP,开
2025-09-04 06:30:00
1071
原创 LLM - 初探:AI-Agent开发实录
本文分享了构建AI自动生成API文档的探索过程。从初期依赖现成工具的失败尝试,到重新定义AI角色边界,最终采用结构化工作流模式(Plan-and-Execute)实现突破。关键创新包括:1)设计中间语言降低AI认知负荷;2)建立自愈循环机制自动修复文档;3)区分理解与生成阶段提升稳定性。作者还展望了多Agent协作架构的潜力,为技术团队解决文档滞后问题提供了实践路径。(149字)
2025-09-04 05:15:00
1369
原创 设计模式 - 责任链模式:构建灵活的API网关权限验证系统
摘要: 本文探讨了责任链模式在API网关权限验证中的应用。面对微服务架构中复杂的权限验证需求(如身份验证、角色控制、频率限制等),责任链模式通过构建验证流水线,实现请求的逐步处理,有效解决了传统if-else代码的维护难题。文章首先解析责任链模式的核心原理,包括UML结构和"流水线"式的工作机制;随后通过API网关案例,展示了如何实现多层权限验证(API Key验证、JWT验证、角色校验等),强调该模式使各验证模块解耦且可灵活扩展。最终通过完整代码示例,演示了如何构建可维护、可扩展的权限
2025-09-03 06:15:00
1058
原创 设计模式 - 命令模式:优雅地封装操作请求与参数
命令模式是一种将操作封装为对象的设计模式,支持操作的参数化、队列化和撤销重做功能。它包含五个核心组件:抽象命令类、具体命令类、调用者、抽象接收者和具体接收者。基础实现通过接口定义执行方法,具体命令持有接收者并调用其业务逻辑。增强版本可支持撤销操作,通过保存执行前状态实现回滚。该模式适用于需要实现复杂操作控制、任务队列或历史记录功能的场景,如文本编辑器、任务调度系统等。
2025-09-03 00:45:00
1428
原创 设计模式 - 解释器模式:手把手教你实现自定义配置规则引擎
解释器模式是一种将用户定义的语法规则转换为可执行代码的设计模式,适用于处理动态规则配置、业务风控等场景。其核心包括抽象表达式、终结符表达式(处理变量/常量)、非终结符表达式(处理逻辑运算)和上下文环境。通过构建表达式树,解释器模式能够将复杂规则分解为简单表达式对象,实现递归解释执行。文中以权限规则引擎为例,展示了如何实现支持AND/OR/NOT等逻辑运算的配置系统,体现了该模式在动态规则处理中的实用价值。
2025-09-02 06:15:00
1021
原创 设计模式 - 迭代器模式:实现数据遍历的职责分离
摘要: 迭代器模式是一种行为型设计模式,通过将集合遍历逻辑封装到迭代器对象中,实现遍历与集合结构的解耦。本文介绍了迭代器模式的定义、UML结构及核心价值,并通过Java代码示例演示了如何从零实现迭代器模式。迭代器模式的关键优势在于职责分离,使集合类专注存储管理,迭代器专注遍历逻辑,客户端代码无需了解集合内部结构即可统一访问元素。该模式提高了代码复用性,降低了耦合度,是Java集合框架等场景中广泛应用的经典设计模式。
2025-09-02 05:15:00
983
原创 设计模式 - 备忘录模式:实现网页表单自动保存与状态恢复
摘要:表单自动保存的备忘录模式实现 备忘录模式通过"拍照-恢复"机制解决了长表单数据丢失问题。该模式包含三个核心组件:原始对象(表单数据)、备忘录(状态快照)和管理者(保存/恢复逻辑)。在表单场景中,通过深拷贝表单项实现状态保存,确保数据隔离性。关键实现步骤包括:1)设计表单项和表单数据结构;2)创建深拷贝的备忘录对象;3)实现定期自动保存机制;4)处理恢复时的版本冲突。该方案在保证封装性的同时,显著提升了表单填写的容错性和用户体验,适用于保险、医疗等长表单业务场景。
2025-09-01 06:30:00
887
原创 设计模式 - 中介者模式:一个“中间人”优雅地给代码“减负”
摘要:中介者模式通过引入中间协调层(如机场塔台)解决对象间复杂交互问题。文章以机场塔台控制系统为例,展示如何将飞机间的网状通信转变为星型结构:所有飞机仅与塔台交互,由塔台统一协调降落、起飞等请求。该模式包含抽象中介者、具体中介者、组件类等核心角色,能有效降低系统耦合度,提升可维护性。紧急情况下,塔台可优先处理特殊请求,体现了中介者对复杂交互的灵活管控能力。
2025-09-01 04:45:00
998
原创 设计模式 - 观察者模式:优雅地实现‘一个动作,N个响应’
摘要: 本文深入解析观察者模式(Observer Pattern),通过库存管理案例展示其实际应用。该模式通过定义对象间的一对多依赖关系,实现状态变更时自动通知所有依赖对象。核心角色包括Subject(被观察者)、Observer(观察者)及其具体实现。案例中,商品库存变化触发多个系统模块(如商品页、营销系统等)的联动更新,体现了松耦合设计优势。文章对比了观察者模式与发布-订阅模式的区别,并附UML类图说明结构关系,最后探讨了模式的适用场景与最佳实践。
2025-08-31 07:30:00
1882
原创 设计模式 - 状态模式:构建播放器状态机实战 (下)
本文介绍了如何运用状态模式设计视频播放器的状态管理系统。通过分析播放器的核心状态(缓冲中、播放、暂停)与显示模式状态(全屏、小窗)的正交关系,构建了一个灵活的状态机架构。文章详细展示了状态接口的定义与具体实现,包括缓冲中状态、播放状态等关键组件的代码实现,其中缓冲中状态只能通过bufferComplete()转移到播放状态,其他操作无效;而播放状态可以暂停或切换显示模式。该设计有效避免了传统if-else处理状态转换带来的维护困难,为视频播放器开发提供了清晰的解决方案。
2025-08-31 06:15:00
643
原创 设计模式 - 状态模式:构建播放器状态机实战 (上)
状态模式是一种行为设计模式,通过封装不同状态的行为到独立类中,使对象在状态改变时自动切换行为。本文以音乐播放器为例,详细展示了状态模式的实现过程:首先定义抽象状态接口(PlayerState),然后实现具体状态类(PlayingState、PausedState、StoppedState),最后通过上下文类(MusicPlayerContext)管理状态转换。该模式避免了复杂的条件判断,使状态转换更加清晰可维护,特别适合处理对象在不同状态下行为差异较大的场景。
2025-08-30 08:30:00
1051
原创 设计模式 - 策略模式:构建灵活的任务调度系统
本文介绍了策略模式在企业级任务调度系统中的应用。策略模式通过定义抽象策略接口(TaskSchedulingStrategy)和具体实现类(优先级调度、轮转调度、最短作业优先等),将算法与使用环境解耦。上下文类(SchedulingContext)持有策略引用,支持运行时动态切换策略。该设计避免了复杂的条件判断,使系统更易扩展和维护。通过任务调度场景的完整代码实现,展示了策略模式如何提升代码的灵活性和可扩展性。
2025-08-30 06:30:00
1073
原创 设计模式 - 模板方法:实现同一模板框架下的算法扩展
模板方法模式是一种行为型设计模式,通过定义算法框架并将具体步骤延迟到子类实现,实现代码复用与扩展。其核心结构包含抽象父类(定义算法骨架和模板方法)和具体子类(实现特定步骤)。典型应用场景包括多个类共享相似算法流程、需要统一框架但允许步骤定制的情况,如持续集成发布系统等。该模式遵循"父类控制流程,子类定制细节"原则,既能保持算法结构稳定,又能灵活扩展具体实现。
2025-08-29 06:15:00
1384
原创 设计模式 - 访问者模式:对象级别的矩阵结构实现与实战指南
访问者模式是一种行为型设计模式,它通过将对象结构与操作逻辑分离,实现对稳定对象结构添加新操作而不修改原有类。该模式通过双分派机制(元素accept方法和访问者visit方法)实现运行时动态绑定。核心角色包括Visitor接口、ConcreteVisitor实现类、Element接口和ConcreteElement实现类。典型应用场景包括:需要为稳定对象结构添加频繁变化的操作、处理多种类型对象的统一操作、避免污染对象类代码等。文中通过Java代码示例和路由器系统适配案例,展示了访问者模式如何优雅解决对象操作扩
2025-08-29 05:00:00
1833
原创 设计模式 - 代理模式:优雅地控制和管理对象访问
代理模式:Java开发中的核心设计模式 代理模式是Java开发中应用最广泛的结构型设计模式之一,它通过提供一个替代对象来控制对真实对象的访问。代理模式的核心原理包含三个关键角色:抽象主题接口、真实主题类和代理类。这种模式在分布式系统、资源优化和权限控制等场景中发挥着重要作用。 代理模式的主要优势包括:实现远程对象访问、避免耗时操作阻塞主线程、控制访问权限等。其典型应用场景包括: 虚拟代理:延迟大对象初始化,如大图片加载 保护代理:实现权限控制,如管理员功能访问 远程代理:简化远程服务调用,如Dubbo框架
2025-08-28 06:15:00
711
原创 设计模式 - 享元模式:通过共享对象节省内存
摘要 享元模式是一种结构型设计模式,通过共享对象内部不变的状态(内部状态),结合外部可变状态(外部状态),有效减少内存消耗。该模式包含四个关键角色:享元接口、具体享元类、享元工厂和非共享享元类。其核心在于区分内部状态(可共享)和外部状态(不可共享),适用于系统中存在大量相似对象的场景,如文本编辑器中的字符处理、Java中的Integer缓存等。与缓存模式不同,享元模式主要目标是节省内存而非时间。通过案例演示了享元工厂管理对象池、按需创建/复用对象的实现过程,展示了如何通过该模式优化系统性能。(149字)
2025-08-28 05:15:00
709
原创 设计模式 - 门面模式:如何简化复杂的系统
门面模式:简化复杂系统的统一接口 门面模式是一种结构型设计模式,通过提供统一的高层接口来简化复杂子系统的调用。它包含两个核心角色:门面系统(Facade)负责协调请求分发,子系统(Subsystems)实现具体功能。该模式适用于简化复杂系统(如电商平台)、减少客户端处理的系统数量、扩展原有系统等场景。案例演示了智能家居系统中,通过HomeTheaterFacade门面封装灯光、恒温器和音响系统的操作,客户端只需调用简单方法即可实现"观影模式"等复杂功能。门面模式有效降低了系统间的耦合度,
2025-08-27 06:15:00
1163
Redis 8.0.3 是高性能的 Key-Value 缓存数据库,本版本为社区适配的 Windows 平台编译版本,适用于开发环境或测试用途
2025-07-12
版本 8.0.3 国产4种架构 x86arm64loongarchmips
2025-07-11
「Tomcat源码剖析」.pdf
2020-06-01
中标龙芯-MIPS- NFS rpm包
2020-11-24
X86-NFS rpm包
2020-11-24
apache-tomcat-8.5.50-src.zip
2020-06-02
mybatisSource.zip
2020-06-14
Spring4CachingAnnotationsExample
2017-10-04
Jest-5.3.4.zip
2020-01-19
Java反编译工具
2015-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人