- 博客(255)
- 收藏
- 关注

原创 领域驱动设计实战:构建高效的在线请假考勤系统
领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。
2020-03-27 19:04:30
1688053
2256

原创 微服务与领域驱动设计:构建高内聚低耦合系统的指南
领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。
2020-03-26 18:34:46
1755741
1849

原创 深入解析Spring Cloud Config:多样配置中心的实现与高可用策略
这篇文章探讨了配置中心的重要性及其在分布式系统中的应用,特别关注Spring Cloud Config。文章首先介绍了配置中心的由来、功能及选择标准,然后详细阐述了Spring Cloud Config的基本实现方法,包括结合Git、关系型数据库(MySQL)和非关系型数据库(MongoDB)的方案。此外,还讨论了配置中心的高可用性、客户端自动刷新机制及安全认证等扩展功能。最后,文章对比了Spring Cloud Config与Apollo的特性,强调Apollo在企业级应用中的优势。
2019-02-14 14:36:20
1673363
2585

原创 全面解读Spring Cloud Zuul:从配置到优化的实战指南
在微服务架构中,API网关作为核心组件之一,承担着请求路由、负载均衡、安全认证等重要功能。Spring Cloud Zuul作为一款功能强大的API网关解决方案,得到了广泛应用。本文将深入探讨Spring Cloud Zuul的各项功能,从基础配置到工作原理,再到多层负载和应用优化,全面解析其在实际应用中的最佳实践与实用技巧,为开发者提供一站式指导,助力其打造高性能、高可用的微服务架构。
2019-02-14 14:35:42
1677241
1932

原创 深入理解Spring Cloud Feign与Ribbon:优雅的微服务调用解决方案
在现代的分布式系统中,微服务架构已经成为了构建大型应用的主流方式。而在微服务架构中,服务间的通信尤为重要,直接影响到系统的稳定性和性能。Spring Cloud作为领先的微服务解决方案,提供了Feign和Ribbon这两个强大的工具,用于简化和优化服务间的调用和负载均衡。本文将探讨Spring Cloud Feign和Ribbon的工作原理及其在实际应用中的最佳实践,帮助开发者更好地理解和利用这些工具来构建可靠的微服务系统。
2019-02-14 14:32:18
1673080
2040

原创 深入理解服务发现与注册:从单体架构到微服务时代的演进
本文首先回顾了服务发现与注册技术在不同系统架构时代的应用演进,分析了单体架构、SOA架构和现代微服务架构下的实现方式和挑战。随后,文章详细介绍了服务发现与注册的技术选型,并深入探讨了Eureka作为一种基于AP原则的服务注册中心的设计理念,包括其如何解决服务实例注册、剔除和信息一致性问题。接着,本文分析了Eureka的基本架构和细化结构,包括注册中心服务器、服务提供者和消费者的角色和功能。最后,文章讨论了Eureka的高可用方案、区域亲和性以及参数调优与监控策略,帮助读者更好地理解和应用这一关键技术组件来构
2019-02-14 14:28:33
1678313
1338
原创 从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮
在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。
2025-05-19 09:28:14
180
原创 一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!
本文介绍了一个Bash脚本,用于快速启动多个独立的Chrome浏览器实例,每个实例使用独立的用户数据目录,支持批量启动、自动等待用户关闭以及自动清理临时数据。脚本功能包括:接收数字参数启动指定数量的Chrome实例,每个实例可打开指定网页,使用临时用户目录避免配置冲突,并在所有实例关闭后自动清理临时目录。推荐通过设置alias别名的方式,将脚本集成到终端中,方便随时调用。使用案例包括打开默认页面、访问指定网址以及打开本地服务等。该脚本适用于Web自动化测试、多页面展示等场景,操作简便且不留痕迹。
2025-05-19 09:27:44
465
2
原创 浮点数的陷阱:你以为的 0.1 + 0.2其实不是 0.3,BigDecimal你真的用对了吗?
在金融和交易系统中,哪怕是一分钱的误差都可能造成巨大损失。然而,很多开发者仍在不经意间落入浮点数的陷阱:看似简单的 0.1 + 0.2,为什么在 Java 中不等于 0.3?本篇文章从底层的 IEEE 754 浮点数标准讲起,剖析误差来源,逐层构建 BigDecimal 使用、格式化控制、精度舍入、判等策略等防线,并结合真实案例总结出一套浮点数处理的实战规范,助你规避金额计算中的隐性风险。
2025-05-18 13:53:41
3194
17
原创 走出 Demo,走向现实:DeepSeek-VL 的多模态工程路线图
本文聚焦 DeepSeek 团队最新发布的大语言模型 DeepSeek-VL,深入探讨其以任务驱动为核心的多模态设计理念。文章从真实世界中复杂且高阶的任务出发,梳理了 DeepSeek-VL 在视觉问答、图像字幕、表格理解、地图导航等方面的能力突破,并指出该模型不再仅追求“看图说话”,而是强调在多模态输入下的任务对齐、信息提取与推理能力。通过剖析其工程思路与模型范式,本文认为 DeepSeek-VL 是多模态模型迈向“实用主义智能”的重要里程碑。
2025-05-17 23:57:08
7311
29
原创 Java 继承复用避坑指南:五个血泪案例揭示高频陷阱
本文系统剖析了继承滥用在实际系统中的五类典型陷阱,包括逻辑被绕过、构造失控、行为不一致、初始化混乱等问题,并通过真实业务案例与测试验证,逐一展示问题根源与演进优化方案。文章强调:继承是一把双刃剑,设计不慎将带来系统性隐患。最终,我们总结出继承的适用边界,倡导以组合、接口、策略等手段替代非必要的继承,实现更健壮、可演进的业务架构。希望本文能为你在系统设计与代码演进中提供深度启发。
2025-05-11 15:58:03
2693
27
原创 连作者都弃用的 LinkedList,你还在用吗?
本文通过源码分析、性能对比和实战案例,揭示了 Java 中 LinkedList 的诸多问题,呼应 Josh Bloch “我从不用 LinkedList”的观点,建议开发者谨慎使用,并优先考虑 ArrayList 或 ArrayDeque 等更高效的替代方案。
2025-05-11 15:57:45
2499
14
原创 如何正确使用 @PostConstruct 和 @PreDestroy 进行资源管理
本文系统介绍了 Spring 中 @PostConstruct 和 @PreDestroy 注解的原理、用法及注意事项,深入分析了其在 Bean 生命周期管理中的作用。通过典型案例解析生命周期注解在继承、作用域、异常处理等场景中的表现,帮助开发者避免常见误区,实现资源的安全初始化与优雅释放。
2025-05-09 09:12:41
3088
17
原创 文学与社会学是否只是在做解释的工作?
回到那句话:“文学和社会学最后只是在做解释的工作。”是的,它们确实在解释,但那只是最低层的职责。真正的文学与社会学,它们要做的是有温度的解释,有行动的解释,有愿景的解释。解释不是终点,而是通往行动、理解与共情的桥梁。如果它们只是解释,而不试图改变世界、修复痛苦、重建意义,那么文学与社会学的存在就将沦为空壳。
2025-05-04 15:36:40
5610
15
原创 新建模范式Mamba——“Selectivity is All You Need?”
Mamba 是一种新颖的序列建模架构,基于选择性状态空间模型(Selective SSM),以线性复杂度实现强大的建模能力,成为挑战 Transformer 的有力候选。本篇文章将深入解读 Mamba 的结构设计与理论基础,涵盖其核心组件(输入关联、选择性滤波器、Scan 运算等)、与 RNN/Attention 的异同、推理与训练效率,以及其在语言建模中的出色表现。通过图示、对比分析与作者实践理解,本文旨在全面揭示 Mamba 如何在准确率与效率之间实现平衡,并探讨其对未来序列建模范式的潜在影响。
2025-05-04 14:59:27
5588
20
原创 重塑数学边界:人工智能如何引领数学研究的新纪元
本文探讨了人工智能如何深刻改变数学研究的边界,特别是在数学理论、推理和证明方式上的创新。随着生成式AI的快速发展,AI不仅帮助数学家加速推理过程,还能在新理论的构建中发挥重要作用。文章还深入分析了人机共证的数学证明探索,展现了AI与数学研究之间日益密切的双向关系。
2025-05-03 20:53:28
5761
26
原创 突破认知边界:神经符号AI的未来与元认知挑战
这篇文章探讨了神经符号AI的发展前景,特别是其在理解和推理能力上的突破。作者分析了神经符号AI在结合深度学习与符号推理方面的潜力,并提出了元认知挑战,即AI如何自我评估和调整其推理过程。文章指出,尽管这一领域的研究进展迅速,但要实现全面的智能系统,还面临着许多尚未解决的难题。
2025-05-03 20:51:19
6121
24
原创 机器能做科学家吗?一场关于开放式科研的 AI 革命
本文基于《The AI Scientist》相关论文,探讨了完全自动化的科研流程,展示了 AI 如何在没有人工干预的情况下,生成研究想法、执行实验、撰写论文并进行评审。核心模块包括大语言模型(LLM)作为“思维核心”、Agent 框架作为执行工具,以及 Aider 编程助手。通过 Diffusion 建模、语言建模和 Grokking 分析等任务的实验,文章评估了 AI 生成的研究论文与人工评审的差异。尽管 AI 在某些任务上表现出潜力,但仍面临创新性不足和实现细节缺失的问题。
2025-05-03 13:50:49
5834
19
原创 如何封装一个线程安全、可复用的 HBase 查询模板
本文探讨了如何封装一个线程安全、可复用的 HBase 查询模板。通过引入基于 AtomicReference 的连接懒加载机制和函数式接口封装查询执行逻辑,本文提供了一种高效的 HBase 查询解决方案。文章详细阐述了 HBase 连接池的实现、查询模板的设计与优化,以及如何在实际业务中应用这些技术。通过完整的案例演示,本文帮助开发者解决 HBase 查询中的常见问题,提高系统性能和可维护性。
2025-05-02 21:59:37
6303
20
原创 使用 Java 实现一个简单且高效的任务调度框架
本文系统地介绍了如何使用 Java 设计与实现一个高吞吐、高可用、轻量级的任务调度框架。内容涵盖任务状态管理、线程池并发执行、阻塞队列解耦、失败重试机制及分布式扩展方案(如分片与 Redis 中心化调度)。通过逐步深入的架构演进与代码示例,帮助读者理解调度系统的核心设计原则与工程实现,为构建可扩展的任务处理平台提供实用参考。
2025-05-02 18:45:22
6219
10
原创 面试中系统化地解答系统设计题:通用方法论
本文系统性讲解了应对系统设计面试题的高效方法论,强调从需求澄清出发,逐步构建清晰、结构化的设计思路。文章详尽分析了功能性与非功能性需求的分类、识别技巧,并通过 URL 缩短服务等示例帮助读者理解如何落地分析。接着,介绍了高层架构设计原则,包括模块划分、缓存、异步队列、数据库等关键组件。最后深入探讨详细设计阶段的数据库建模、API 设计和技术选型,为构建高性能、可扩展系统提供全面参考。
2025-05-01 12:54:59
6589
38
原创 从检索到生成:RAG 如何重构大模型的知识边界?
大模型强大却易幻觉,RAG(Retrieval-Augmented Generation)应运而生,成为连接知识与语言的桥梁。本文系统梳理了 RAG 技术从 Naive 到 Advanced 再到 Modular 架构的演进路径,结合架构图与核心模块对比,揭示其背后的设计动因与能力边界。通过对不同阶段的优劣剖析,帮助读者全面理解 RAG 的技术发展、适用场景及未来趋势,为构建高质量、可信任的智能问答系统提供实践启示。
2025-04-23 08:59:21
8235
39
原创 CMS GC优化实战:降低请求高峰期GC Remark阶段停顿时间
本文通过分析CMS GC的Remark阶段在高并发环境中的影响,探讨了如何通过优化CMS GC配置来减少停顿时间。具体包括启用并发预清理机制、强制执行Minor GC等策略,优化后系统的GC停顿时间和吞吐量得到了明显改善,尤其在高峰期,系统的响应能力得到了显著提升。
2025-04-23 08:58:49
7728
46
原创 Java垃圾回收的隐性杀手:过早晋升的识别与优化实战
过早晋升是JVM垃圾回收中的一种常见性能问题,通常由Young区配置不合理、内存分配速率过高或晋升阈值设置不当引起。过早晋升会导致频繁的Full GC、增加停顿时间,并显著影响系统吞吐量。通过调整Young/Eden区的大小、优化内存分配速率、灵活配置MaxTenuringThreshold等策略,可以有效避免过早晋升现象,提升垃圾回收效率。本文结合具体案例,详细介绍了优化措施及其实际效果,提供了对JVM垃圾回收优化的深入分析与实践指南。
2025-04-10 09:15:05
10694
165
原创 单次 CMS Old GC 耗时长问题分析与优化
本文探讨了 Java 应用中 CMS Old GC 停顿时间过长的问题,分析了可能导致长时间 GC 停顿的原因,如 Full GC、Promotion Failure、内存碎片化等,并提出了相应的优化方案。通过调整 JVM 参数(如增加 Old Generation 内存、减少 Promotion Failure、开启内存压缩等)和提高 GC 并行度,可以有效减少 GC 停顿时间,提高系统性能。
2025-04-10 09:14:52
11383
164
原创 RAG 架构地基工程-Retrieval 模块的系统设计分享
Retrieval-Augmented Generation(RAG)架构在大模型时代大放异彩,而其中的 Retrieval 模块往往被低估。本文系统梳理了 Retrieval 模块的关键设计点,包括数据源类型、文档切分策略、向量化与存储结构、语义检索方式,以及多文档融合机制。通过图示与表格对比,揭示不同设计选择对生成效果的深远影响,强调 Retrieval 不仅是召回,更是影响最终答案质量的“地基工程”。本文旨在为研发者构建可控、可调、可解释的 RAG 系统提供结构化参考。
2025-04-07 13:16:12
24091
433
原创 ZGC 参数优化与 GC 触发机制解析分享
本文深入探讨了 ZGC(Z Garbage Collector)参数优化与 GC 触发机制,旨在帮助开发者理解如何通过合理配置 ZGC 的参数来降低 Allocation Stall,提高系统吞吐量和稳定性。文章分析了影响 ZGC 性能的关键因素,如 heap 设置、线程池配置等,并通过实际案例展示了不同参数设置对 GC 行为的影响。通过对 GC 触发机制的解析,本文提供了可行的优化策略,以有效减少系统停顿时间,实现高效的内存管理。
2025-04-07 13:15:56
15284
304
原创 解决 CMS Old GC 频繁触发线上问题技术方案
CMS Old GC 频繁触发不仅会对系统的吞吐量造成影响,还可能导致响应时间波动,严重时甚至可能影响到整个应用的稳定性。通过深入分析其触发原因和优化措施,我们可以采取一系列的解决方案来缓解或消除这一问题,从而提升系统的性能和响应能力。合理配置 CMS 启动条件:通过调整 -XX:CMSInitiatingOccupancyFraction,提前触发 Old GC 回收,避免 Old 区过度占用内存,提高内存回收的及时性,从而减轻系统压力。调整 GC 等待时间。
2025-04-02 08:59:48
12406
291
原创 深入解析 Java GC 调优:减少 Minor GC 频率,优化系统吞吐
这篇文章深入探讨了Java垃圾回收(GC)的优化与调优,重点分析了GC频率、内存分配、以及垃圾回收过程中可能带来的性能问题。通过结合实际案例,文章详细介绍了如何通过调整JVM参数来减少Minor GC频率、避免老年代过早增长并触发Major GC,进一步优化系统性能。通过对GC日志的分析,作者提出了具体的优化策略,并在实践中取得了显著的改进,减少了GC带来的延迟,并优化了TP90/TP99响应时间。文章为开发者提供了丰富的垃圾回收调优技巧,并通过实际操作帮助提升Java应用的稳定性与性能。
2025-03-30 19:50:26
21033
383
原创 堆外内存 OOM:现象分析与优化方案
本文分析了 Java 中堆外内存泄漏及其引发的 OOM 问题,重点讨论了主动申请未释放和 JNI 调用未释放的两大原因。提供了排查策略,如启用 Native Memory Tracking(NMT)和监控堆外内存使用。并提出了优化方案,包括合理管理堆外内存、设置内存限制及定期监控,帮助避免内存泄漏对系统性能的影响。
2025-03-30 19:49:45
15910
360
原创 如何高效解决 Java 内存泄漏问题方法论
本文介绍了高效诊断和优化 Java 内存泄漏问题的系统化方法。通过获取内存快照、使用 MAT 和 JProfiler 等工具分析对象,逐步排查泄漏源,确认问题并优化代码,开发者可以解决内存泄漏并提升应用性能。内容包括内存快照生成、内存差异对比、疑似泄漏检测、代码优化等,确保垃圾回收机制正常工作,最终提高应用的稳定性和效率。
2025-03-18 08:45:15
20990
476
原创 深入剖析 MetaSpace OOM 问题:根因分析与高效解决策略
MetaSpace区是JVM内存管理中的关键部分,负责存储类元数据。随着Java 8的推出,MetaSpace取代了PermGen区,但其灵活性也带来了新的挑战,尤其是在动态类加载和频繁类更新的场景下,容易导致MetaSpace内存溢出(OOM)问题。本文探讨了MetaSpace OOM的根本原因,包括类加载器泄漏、内存管理不当和GC效率低下等,并提供了一系列调优策略和解决方案,帮助开发者有效排查和防止此类问题的发生,确保应用程序的稳定性和高可用性。
2025-03-18 08:45:06
18764
436
原创 如何选取合适的 NewRatio 值来优化 JVM 的垃圾回收策略
本文探讨了 NewRatio 在 JVM 垃圾回收中的作用及优化策略。通过调整 NewRatio 值,可以在不同负载下优化新生代与老年代的内存分配,减少垃圾回收停顿。在高负载环境中,减小 NewRatio 有助于减少 Full GC 的频率,而低负载下则通过增大 NewRatio 提高内存利用率。结合 CMS 收集器和堆内存调整,合理配置垃圾回收参数,能显著提升 JVM 性能,优化内存管理。
2025-03-10 08:35:27
23695
504
原创 分析CMS GC退化为单线程串行GC模式的原因与优化
本文分析了Java CMS(Concurrent Mark-Sweep)垃圾回收器在特定情况下退化为串行GC模式的现象,导致停顿时间显著增加,影响系统性能。文章详细探讨了退化的原因,包括老年代空间不足、并发标记失败、内存碎片化和应用程序中断等,并提出了相应的优化建议,如增加老年代空间、调整GC参数、定期触发Full GC和优化内存分配等。通过合理配置JVM和优化内存管理,可以有效降低CMS退化的风险,提升系统的吞吐量和响应速度,确保Java应用的稳定运行。
2025-03-10 08:34:57
23876
444
原创 显式 GC 的使用:留与去,如何选择?
显式垃圾回收(Explicit GC)是 Java 中通过开发者调用 System.gc() 手动触发的垃圾回收过程。与自动 GC 不同,显式 GC 允许开发者在内存压力较大时主动清理不再使用的对象。然而,显式 GC 可能导致应用性能下降,因为它会触发全堆回收,造成线程暂停(STW)现象,尤其在高负载情况下。尽管它能帮助清理堆外内存(如 DirectByteBuffer 中的内存),但频繁使用会干扰 JVM 的自动垃圾回收策略,从而影响系统性能。使用显式 GC 是否适合,取决于应用的性能需求和内存管理要求。
2025-03-09 10:55:47
27722
389
原创 动态扩缩容引发的JVM堆内存震荡:从原理到实践的GC调优指南
本文分析了 JVM 内存弹性机制及其在高负载环境中的挑战,重点探讨了堆内存伸缩、内存扩展与收缩的核心机制。通过对系统发布后 GC 雪崩事件的分析,文章揭示了多代际内存管理中的响应差异,尤其是年轻代、老年代与 Metaspace 的协调问题。为避免这些问题,提出了优化内存配置、调整 GC 策略和合理设置代际大小的解决方案。此外,文章进一步探讨了从被动响应到主动防御的转变,建议结合智能调节与自动化监控机制。
2025-03-09 10:55:37
26507
573
原创 如何有效判断与排查Java GC问题
本文介绍了Java垃圾回收(GC)的基本原理及其优化策略。通过分析GC的工作机制,探讨了常见的GC类型、内存管理模型及其对应用性能的影响。文章还详细阐述了如何通过调整JVM参数、选择合适的GC算法和分析GC日志来优化内存回收效率。通过这些实用的优化方法,开发者可以有效减少GC暂停时间,提高应用的响应速度和吞吐量。
2025-03-02 14:02:31
41370
617
原创 Java GC 基础知识快速回顾
本篇文章深入探讨了 Java 垃圾回收(GC)机制的核心概念、工作原理及其对应用性能的影响。我们介绍了垃圾回收的基本概念,包括堆和栈的内存管理、GC 的触发机制、GC 对开发者的重要性等。文章重点分析了常见的垃圾回收算法和回收器,涵盖了分代收集和分区收集策略,以及如何根据应用需求选择合适的回收器。最后,我们还讨论了 GC 的性能调优方法,帮助开发者通过优化内存管理提升应用性能,避免内存泄漏和性能瓶颈。通过本文的学习,读者将能够更好地理解和优化 Java 应用中的垃圾回收机制,确保程序的高效稳定运行。
2025-03-02 14:02:21
39322
713
原创 推进可解释人工智能迈向类人智能讨论总结分享
本文探讨了可解释人工智能(XAI)的现状与未来发展,重点分析了AI透明化的必要性和多种解释方法的应用。同时,文章深入讨论了人工通用智能(AGI)和神经AI接口的发展前景,探讨了AI如何逐步具备情感、意识与自我觉察等人类特质,进而向更高层次的智能迈进。此外,文章还强调了伦理、社会责任与跨学科合作的重要性,指出技术进步应与社会价值相融合,推动AI服务于人类福祉。通过对技术与伦理挑战的全面分析,本文展望了一个更加智能且人性化的未来。
2025-01-18 19:43:41
43490
916
BeanFactory内部解析:Spring框架的心脏如何运作
2024-08-03
解读InnoDB数据库索引页与数据行的紧密关联
2024-08-03
揭秘大模型的世界:初步了解人工智能的核心技术
2024-08-03
自动状态管理革命:优化业务流程的智能解决方案
2024-08-03
赢得签约战:用动态规划优化棒球自由球员选择策略
2024-08-03
文档规范的终极指南:大型项目开发中必备的设计文档标准
2024-08-03
存储选型实战:用真实案例教你如何做出最佳存储决策
2024-08-03
从ES的JVM配置起步思考JVM常见参数优化
2024-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人