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

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

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

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

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

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

原创 深入理解服务发现与注册:从单体架构到微服务时代的演进
本文首先回顾了服务发现与注册技术在不同系统架构时代的应用演进,分析了单体架构、SOA架构和现代微服务架构下的实现方式和挑战。随后,文章详细介绍了服务发现与注册的技术选型,并深入探讨了Eureka作为一种基于AP原则的服务注册中心的设计理念,包括其如何解决服务实例注册、剔除和信息一致性问题。接着,本文分析了Eureka的基本架构和细化结构,包括注册中心服务器、服务提供者和消费者的角色和功能。最后,文章讨论了Eureka的高可用方案、区域亲和性以及参数调优与监控策略,帮助读者更好地理解和应用这一关键技术组件来构
2019-02-14 14:28:33
1667295
1168
原创 ZGC 参数优化与 GC 触发机制解析分享
本文深入探讨了 ZGC(Z Garbage Collector)参数优化与 GC 触发机制,旨在帮助开发者理解如何通过合理配置 ZGC 的参数来降低 Allocation Stall,提高系统吞吐量和稳定性。文章分析了影响 ZGC 性能的关键因素,如 heap 设置、线程池配置等,并通过实际案例展示了不同参数设置对 GC 行为的影响。通过对 GC 触发机制的解析,本文提供了可行的优化策略,以有效减少系统停顿时间,实现高效的内存管理。
2025-03-31 08:10:23
1024
57
原创 解决 CMS Old GC 频繁触发线上问题技术方案
CMS Old GC 频繁触发不仅会对系统的吞吐量造成影响,还可能导致响应时间波动,严重时甚至可能影响到整个应用的稳定性。通过深入分析其触发原因和优化措施,我们可以采取一系列的解决方案来缓解或消除这一问题,从而提升系统的性能和响应能力。合理配置 CMS 启动条件:通过调整 -XX:CMSInitiatingOccupancyFraction,提前触发 Old GC 回收,避免 Old 区过度占用内存,提高内存回收的及时性,从而减轻系统压力。调整 GC 等待时间。
2025-03-31 08:09:50
730
44
原创 深入解析 Java GC 调优:减少 Minor GC 频率,优化系统吞吐
这篇文章深入探讨了Java垃圾回收(GC)的优化与调优,重点分析了GC频率、内存分配、以及垃圾回收过程中可能带来的性能问题。通过结合实际案例,文章详细介绍了如何通过调整JVM参数来减少Minor GC频率、避免老年代过早增长并触发Major GC,进一步优化系统性能。通过对GC日志的分析,作者提出了具体的优化策略,并在实践中取得了显著的改进,减少了GC带来的延迟,并优化了TP90/TP99响应时间。文章为开发者提供了丰富的垃圾回收调优技巧,并通过实际操作帮助提升Java应用的稳定性与性能。
2025-03-30 19:50:26
5226
115
原创 RAG 架构地基工程-Retrieval 模块的系统设计分享
Retrieval-Augmented Generation(RAG)架构在大模型时代大放异彩,而其中的 Retrieval 模块往往被低估。本文系统梳理了 Retrieval 模块的关键设计点,包括数据源类型、文档切分策略、向量化与存储结构、语义检索方式,以及多文档融合机制。通过图示与表格对比,揭示不同设计选择对生成效果的深远影响,强调 Retrieval 不仅是召回,更是影响最终答案质量的“地基工程”。本文旨在为研发者构建可控、可调、可解释的 RAG 系统提供结构化参考。
2025-03-30 19:50:13
8696
167
原创 堆外内存 OOM:现象分析与优化方案
本文分析了 Java 中堆外内存泄漏及其引发的 OOM 问题,重点讨论了主动申请未释放和 JNI 调用未释放的两大原因。提供了排查策略,如启用 Native Memory Tracking(NMT)和监控堆外内存使用。并提出了优化方案,包括合理管理堆外内存、设置内存限制及定期监控,帮助避免内存泄漏对系统性能的影响。
2025-03-30 19:49:45
4727
118
原创 如何高效解决 Java 内存泄漏问题方法论
本文介绍了高效诊断和优化 Java 内存泄漏问题的系统化方法。通过获取内存快照、使用 MAT 和 JProfiler 等工具分析对象,逐步排查泄漏源,确认问题并优化代码,开发者可以解决内存泄漏并提升应用性能。内容包括内存快照生成、内存差异对比、疑似泄漏检测、代码优化等,确保垃圾回收机制正常工作,最终提高应用的稳定性和效率。
2025-03-18 08:45:15
8650
217
原创 深入剖析 MetaSpace OOM 问题:根因分析与高效解决策略
MetaSpace区是JVM内存管理中的关键部分,负责存储类元数据。随着Java 8的推出,MetaSpace取代了PermGen区,但其灵活性也带来了新的挑战,尤其是在动态类加载和频繁类更新的场景下,容易导致MetaSpace内存溢出(OOM)问题。本文探讨了MetaSpace OOM的根本原因,包括类加载器泄漏、内存管理不当和GC效率低下等,并提供了一系列调优策略和解决方案,帮助开发者有效排查和防止此类问题的发生,确保应用程序的稳定性和高可用性。
2025-03-18 08:45:06
7631
201
原创 如何选取合适的 NewRatio 值来优化 JVM 的垃圾回收策略
本文探讨了 NewRatio 在 JVM 垃圾回收中的作用及优化策略。通过调整 NewRatio 值,可以在不同负载下优化新生代与老年代的内存分配,减少垃圾回收停顿。在高负载环境中,减小 NewRatio 有助于减少 Full GC 的频率,而低负载下则通过增大 NewRatio 提高内存利用率。结合 CMS 收集器和堆内存调整,合理配置垃圾回收参数,能显著提升 JVM 性能,优化内存管理。
2025-03-10 08:35:27
12596
262
原创 分析CMS GC退化为单线程串行GC模式的原因与优化
本文分析了Java CMS(Concurrent Mark-Sweep)垃圾回收器在特定情况下退化为串行GC模式的现象,导致停顿时间显著增加,影响系统性能。文章详细探讨了退化的原因,包括老年代空间不足、并发标记失败、内存碎片化和应用程序中断等,并提出了相应的优化建议,如增加老年代空间、调整GC参数、定期触发Full GC和优化内存分配等。通过合理配置JVM和优化内存管理,可以有效降低CMS退化的风险,提升系统的吞吐量和响应速度,确保Java应用的稳定运行。
2025-03-10 08:34:57
12848
234
原创 显式 GC 的使用:留与去,如何选择?
显式垃圾回收(Explicit GC)是 Java 中通过开发者调用 System.gc() 手动触发的垃圾回收过程。与自动 GC 不同,显式 GC 允许开发者在内存压力较大时主动清理不再使用的对象。然而,显式 GC 可能导致应用性能下降,因为它会触发全堆回收,造成线程暂停(STW)现象,尤其在高负载情况下。尽管它能帮助清理堆外内存(如 DirectByteBuffer 中的内存),但频繁使用会干扰 JVM 的自动垃圾回收策略,从而影响系统性能。使用显式 GC 是否适合,取决于应用的性能需求和内存管理要求。
2025-03-09 10:55:47
16552
199
原创 动态扩缩容引发的JVM堆内存震荡:从原理到实践的GC调优指南
本文分析了 JVM 内存弹性机制及其在高负载环境中的挑战,重点探讨了堆内存伸缩、内存扩展与收缩的核心机制。通过对系统发布后 GC 雪崩事件的分析,文章揭示了多代际内存管理中的响应差异,尤其是年轻代、老年代与 Metaspace 的协调问题。为避免这些问题,提出了优化内存配置、调整 GC 策略和合理设置代际大小的解决方案。此外,文章进一步探讨了从被动响应到主动防御的转变,建议结合智能调节与自动化监控机制。
2025-03-09 10:55:37
15374
335
原创 如何有效判断与排查Java GC问题
本文介绍了Java垃圾回收(GC)的基本原理及其优化策略。通过分析GC的工作机制,探讨了常见的GC类型、内存管理模型及其对应用性能的影响。文章还详细阐述了如何通过调整JVM参数、选择合适的GC算法和分析GC日志来优化内存回收效率。通过这些实用的优化方法,开发者可以有效减少GC暂停时间,提高应用的响应速度和吞吐量。
2025-03-02 14:02:31
28165
409
原创 Java GC 基础知识快速回顾
本篇文章深入探讨了 Java 垃圾回收(GC)机制的核心概念、工作原理及其对应用性能的影响。我们介绍了垃圾回收的基本概念,包括堆和栈的内存管理、GC 的触发机制、GC 对开发者的重要性等。文章重点分析了常见的垃圾回收算法和回收器,涵盖了分代收集和分区收集策略,以及如何根据应用需求选择合适的回收器。最后,我们还讨论了 GC 的性能调优方法,帮助开发者通过优化内存管理提升应用性能,避免内存泄漏和性能瓶颈。通过本文的学习,读者将能够更好地理解和优化 Java 应用中的垃圾回收机制,确保程序的高效稳定运行。
2025-03-02 14:02:21
25829
484
原创 2024年度推进可解释人工智能迈向类人智能讨论总结分享
本文探讨了可解释人工智能(XAI)的现状与未来发展,重点分析了AI透明化的必要性和多种解释方法的应用。同时,文章深入讨论了人工通用智能(AGI)和神经AI接口的发展前景,探讨了AI如何逐步具备情感、意识与自我觉察等人类特质,进而向更高层次的智能迈进。此外,文章还强调了伦理、社会责任与跨学科合作的重要性,指出技术进步应与社会价值相融合,推动AI服务于人类福祉。通过对技术与伦理挑战的全面分析,本文展望了一个更加智能且人性化的未来。
2025-01-18 19:43:41
32041
696
原创 微信红包系统整体架构分析探讨
微信红包系统的设计与实施展示了面对高并发和大数据处理挑战时的技术创新和架构优化。系统通过模块化设计,从接入层到业务逻辑层再到数据存储层,确保了高效性和稳定性。采用了单元化架构和分库分表策略来应对并发请求,同时通过 Redis 缓存和异步处理机制优化性能。红包分配算法如实时拆分和二倍均值法,提升了用户体验并确保了公平性。为了提高系统可用性和容灾能力,实施了微服务架构、无状态设计和冗余部署。微信红包系统不仅解决了技术挑战,还提供了流畅的用户体验,是现代分布式系统设计的成功案例。
2024-12-04 12:22:43
34586
1909
原创 从ES的JVM配置起步思考JVM常见参数优化
Java 8目前仍然是许多企业中主要使用的版本之一,尤其是对于比较保守的公司。在过去,CMS (Concurrent Mark-Sweep) 垃圾回收器在Java 8中是一种常见选择,因为它在某些场景下能够提供较好的性能。然而,随着Java版本的不断更新,一些旧的特性和组件被淘汰或替代,比如CMS。Java 14中正式废弃了CMS,而新的垃圾回收器,如ZGC和G1,逐渐成为了主流选择。ZGC和G1在处理大内存堆和低停顿时间方面表现出色,适用于现代应用程序的需求。
2024-12-03 09:18:03
74667
1235
原创 提升分布式系统响应速度:分布式系统远程调用性能提升之道
本文主要探讨了在高并发和复杂数据需求的分布式系统中,如何通过并行调用、数据异构存储和混合策略优化接口性能。通过分析多个服务接口调用的实际场景,文章介绍了如何利用并发工具(如 Java 的 CompletableFuture)实现并行调用,缩短响应时间;以及如何通过 Redis 等缓存技术进行数据异构存储,减少远程调用次数。最后,文章总结了混合策略的应用,通过动态选择并行调用和缓存策略,既满足了数据实时性要求,又优化了系统的性能。
2024-12-02 09:17:42
39589
1169
原创 异步处理优化:多线程线程池与消息队列的选择与应用
本文讨论了两种常见的异步处理方式:多线程线程池和消息队列(MQ)。通过将非核心逻辑异步化,可以提升系统的性能和响应速度。多线程线程池适用于本地并发任务,适合需要快速响应的场景,但无法处理跨服务任务。消息队列则适用于分布式系统,能够解耦服务并保证任务的可靠性和顺序性,适合处理高并发和高可靠性要求的任务。文章提供了实际代码示例,帮助开发者根据业务需求选择合适的异步处理方式。
2024-12-01 23:55:34
1679098
1172
原创 分布式系统中的Dapper与Twitter Zipkin:链路追踪技术的实现与应用
本文深入探讨了Dapper和Zipkin作为分布式系统中关键的链路追踪工具的演进与应用。Dapper作为Google的开创性作品,通过精确的时间戳和分布式日志记录,革新了对分布式系统性能问题的诊断能力。而Zipkin则以其开放性和社区驱动的特性,成为了广泛采用的开源解决方案,支持多语言、多协议的链路追踪需求。文章详细分析了它们在微服务架构中的实际应用,包括如何通过追踪和监控分布式调用路径,提升系统的可观察性和性能优化的能力。最后,通过案例研究和技术评估,展示了如何利用这些工具解决复杂的分布式系统问题,为开发
2024-12-01 23:55:20
50122
1727
原创 揭开广告引擎的神秘面纱:如何在0.1秒内精准匹配用户需求?
学习广告引擎的整体架构和工作过程是本文的关键内容,包括广告请求解析、标签检索、向量检索、打分排序等多个关键环节。这些环节共同构建了一个强大的广告引擎,使其能够在极短的时间内返回最相关的广告。
2024-12-01 23:55:04
86615
1272
原创 智能化状态管理:自动状态流转处理模块
自动流转一般都是一个很大的处理系统,其中包含的处理内容是很庞大的,就这样一个大型系统的开发思路,我后面会抽空来分享一篇全局的思路,本次仅针对一般如果我们需要对一些业务流程需要进行自动化处理思维的给出一个样例的自动状态流转处理模块的代码示例。如果有写的不对的地方,请留言指正!
2024-12-01 23:54:51
63222
1241
原创 EMall实践DDD模拟电商系统总结
学习如何利用领域驱动设计(DDD)构建电商系统。从事件风暴开始,团队快速梳理业务流程和事件。系统用例和领域上下文分析系统需求和边界。探讨架构设计,融合六边形架构和系统分层。系统实现包括项目结构、订单功能、领域层实现和Repository层实现。重点介绍聚合、CQRS模式、缓存、Unit Of Work模式等概念。最后,讨论领域事件实现,帮助了解电商系统设计和实现,掌握DDD在电商系统中的应用。
2024-12-01 23:54:40
65861
1654
原创 接口性能优化宝典:解决性能瓶颈的策略与实践
本文深入探讨了提升接口性能的多种策略,涵盖了数据库优化、远程调用、异步处理、事务优化、缓存机制、分库分表等方面的技术。通过直面常见性能瓶颈,本文详细讲解了如何优化 SQL 执行效率、避免重复调用、减少事务复杂性、提高并发度,并提供了实际应用的最佳实践和技术方案。此外,文章还结合具体的案例,阐述了如何通过合理选择和设计优化方案,解决常见的性能问题,帮助开发者构建高效、可扩展的系统架构。
2024-12-01 23:54:11
1719815
1229
原创 Java 同步锁性能的最佳实践:从理论到实践的完整指南
在多线程编程中,锁是保证线程安全的重要手段之一,但如何选择合适的锁并进行优化,一直是我们面临的挑战。本博客探讨Java中同步锁的性能分析与优化之路,从使用同步锁和不使用同步锁的性能对比入手,逐步展开对锁的优化手段和技术原理的解析,帮助读者更好地理解和应用Java中的锁机制。
2024-12-01 23:53:54
77633
1146
原创 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
探讨如何基于实现一个高效的上下文管理组件,以解决多线程环境下的数据共享和上下文管理这些问题。通过具体的代码示例和实战展示如何为多线程编程提供一种简洁而高效的上下文管理方案。
2024-12-01 23:53:39
88482
1330
原创 高并发场景下的热点key问题探析与应对策略
当今高并发场景下,热点key问题成为影响系统性能和稳定性的关键挑战。本文探讨了热点key问题的定义及其在分布式系统中的常见表现,如流量集中、缓存分片打垮等。针对这些问题,本文提出了多级缓存策略、多副本策略和热点key拆分与动态分散策略作为有效应对措施。这些策略不仅能显著减轻单点负载压力,还能提升系统的并发处理能力和整体稳定性,从而保障系统在高负载和复杂业务场景下的可靠性。
2024-12-01 23:53:26
65707
1527
原创 缓冲区的奥秘:解析数据交错的魔法
本文探讨了缓冲区的重要性及其在不同领域的应用。首先,从直观角度解释了缓冲区的好处,包括保持操作节奏、减少性能损耗和优化用户体验等。其次,通过经典案例分析了文件读写流和日志缓冲的应用,展示了缓冲区的加速效果。进一步探讨了缓冲区优化方向,以及在Kafka中可能引发的数据丢失和对业务高可用性的影响。本文旨在帮助读者深入理解缓冲区的奥秘,以及在实际应用中的优化思路。
2024-12-01 23:53:05
65087
1260
原创 预训练模型与ChatGPT:自然语言处理的革新与前景
主要涵盖了ChatGPT的背景、NLP学习范式的演进、预训练方法的详细介绍以及OpenAI的GPT系列模型的概述。旨在提供一个全面的认知和理解,以帮助读者更好地了解ChatGPT以及与之相关的NLP领域的发展。
2024-12-01 23:52:52
34785
1392
原创 直击高频编程考点:聚焦新版综合编程能力考查汇总
业务性编程能力指的是开发人员在理解和实现具体业务需求方面的能力。这不仅包括对编程语言、框架和工具的熟练掌握,还涉及对业务逻辑、流程和领域知识的深入理解和灵活运用。在编程结束后或过程中需要扩展分析考查面试者的知识广度。本文总结常考的几类大题分享来说明具体的内容
2024-12-01 23:52:34
65296
759
原创 核心社群营销和覆盖区域选型
社群营销是一种通过精细化运营和长期用户关系维护,实现企业营销目标的新型营销模式。通过选择合适的平台,建立并管理高价值的社群,企业可以实现拉新、促活和转化等多个目标,为产品的推广和用户关系的维护提供有力支持。在这个过程中,企业微信因其强大的功能和完善的生态系统,成为企业进行社群营销的理想平台。
2024-11-20 00:04:40
63048
1705
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关注的人