- 博客(16)
- 收藏
- 关注
原创 MyBatisPlus高阶实战:解锁企业级开发的场景解决方案
MyBatisPlus通过智能代码生成和Lambda表达式等创新设计,显著提升了开发效率,解决了传统MyBatis中重复编写模板化代码的问题。其核心优势包括单表操作零SQL、动态SQL构造器、企业级特性开箱即用以及弹性扩展体系。本文将深入MyBatisPlus核心高级特性,并演示日常使用最佳实践......
2025-05-12 14:46:24
620
原创 TransmittableThreadLocal:穿透线程边界的上下文传递艺术
在并发编程中,线程上下文传递是一个关键问题。Java中的ThreadLocal虽然解决了线程安全问题,但无法跨线程传递上下文。InheritableThreadLocal通过继承机制实现了父子线程间的上下文传递,但在线程池场景下,由于线程复用,会导致上下文污染和内存泄漏问题。TransmittableThreadLocal(TTL)通过创新的快照机制,在任务提交时捕获当前上下文,并在任务执行时精准还原,解决了线程池中的上下文传递问题,下面我带领大家学习这门技术设计原理和思想,为我们遇到类似问题时可以提供思路
2025-05-10 21:31:32
1127
原创 SQL调优全攻略:从原理到实战
在当今数据驱动的时代,数据库性能直接影响着企业的运营效率和用户体验。作为最流行的开源关系型数据库之一,MySQL承载着无数关键业务系统的数据存储与查询需求。然而,随着数据量的增长和业务复杂度的提升,SQL查询性能问题逐渐成为许多开发者面临的共同挑战。
2025-05-09 15:10:41
1038
原创 深入解析Docker:核心架构与最佳实践
Docker 的诞生彻底改变了软件开发和部署的方式,其核心思想是“一次构建,随处运行”。它不仅解决了环境不一致的难题,还通过轻量级的容器化技术提升了资源利用率和运维效率。本文将深入剖析 Docker 的底层架构、核心原理、使用场景,并结合实际案例给出最佳实践。Docker 不仅是一项技术,更是一种开发范式的革新。通过深入理解其底层原理(如 Namespaces、Cgroups、UnionFS),结合最佳实践(镜像优化、安全加固),开发者可以构建高效、稳定、安全的容器化应用。
2025-05-08 11:52:19
1128
1
原创 Redis消息队列演进史
Redis作为最流行的开源数据库之一,其在消息队列领域的应用经历了多个重要阶段。从早期的简单队列实现,到中间件方案的兴起,再到Redis自身功能的完善,每一步都体现了技术发展的轨迹。本文将从技术发展的角度,梳理Redis消息队列的演进历程,并探讨其在不同阶段的应用场景。工具的进化史就是需求的映射史从List到Stream的演进,本质上是对不同时代业务需求的回应。理解每个阶段的设计取舍,才能在选择时做出最合适的架构决策。Redis的消息队列发展史,正是分布式系统演进的一个精彩切片。
2025-05-06 23:54:27
655
原创 EasyExcel高级特性和技术选型
在Java生态中,处理Excel文件的需求无处不在,无论是数据导入导出、报表生成,还是企业级数据分析,都离不开对Excel的灵活操作。然而,传统的Apache POI库虽然功能强大,但在处理大文件时内存溢出(OOM)问题频发。
2025-05-03 22:40:53
767
原创 MySQL集群模式详解:架构、优缺点与生产环境选型指南
在分布式系统与云原生技术蓬勃发展的今天,数据库架构设计已成为开发者技术栈中的必修课。当我们从单机CRUD迈向高并发、高可用的系统设计时,MySQL集群方案的学习对我们有很高的帮助——它不仅是面试官偏爱的考点,更是生产环境中真实故障的“逃生通道”。本文我将带大家深入解析MySQL的集群模式。MySQL集群模式是通过多节点协同工作实现数据库高可用、负载均衡和扩展性的解决方案。它突破了单机性能瓶颈,提供故障自动转移能力,确保业务稳定流转。常见的实现方式包括原生集群方案、第三方解决方案和云服务商方案。
2025-04-30 20:12:31
914
原创 深入解析MySQL日志模块 - Undo Log(回滚日志)与MVCC机制
想象这样一个场景:一个电商平台的数据库正在经历“双十一”的流量洪峰——10万用户同时抢购同一款商品,系统既要保证库存扣减的准确性,又要让每个用户实时看到剩余数量;财务系统在进行跨行转账,交易中途网络突然中断,系统必须瞬间将数据恢复到操作前的状态;后台运营在生成报表,复杂的统计查询不能影响前台用户的支付操作…如何在保证数据绝对安全的前提下,让成千上万的读写操作并行不冲突?
2025-04-27 10:59:14
791
原创 深入解析MySQL日志模块 - Redo Log(重做日志)
凌晨两点,购物节的秒杀刚刚结束,你的数据库突然遭遇断电。当所有人以为数万笔订单将灰飞烟灭时,系统却在重启后毫发无损地复原了所有交易,这就是我们今天要说的Redo Log的能力。
2025-04-26 21:58:33
734
原创 深入解析MySQL日志模块 - Binlog(二进制日志)
数据库世界的"黑匣子"在MySQL数据库系统中,Binlog(Binary Log) 如同飞机的黑匣子,默默记录着所有关键操作。这个看似简单的二进制日志文件,却是实现数据复制灾难恢复、审计追溯等核心功能的基石。本文将深入剖析Binlog的设计原理、实现细节及其在现代数据架构中的关键作用。
2025-04-26 17:50:43
770
原创 深入解析 Caffeine 缓存
在高并发系统中,缓存是提升性能的核心组件之一。Caffeine 作为一款高性能 Java 缓存库,凭借其Window-TinyLFU 淘汰算法和 卓越的并发性能,成为许多系统的首选。本文将深入解析 Caffeine 的设计原理、核心架构、关键 API,并通过一个高并发场景的实战案例,展示其应用方法。
2025-04-24 13:43:22
709
原创 Java Agent与JVMTI深度解析:原理、实践与在Arthas中的应用
在现代Java系统中,监控、诊断和性能优化已成为开发和运维的核心需求。无论是线上问题排查、性能瓶颈分析,还是全链路追踪,都离不开对JVM底层机制的深入理解和灵活运用。Java Agent和Java Agent 提供了一种无侵入式的方式,能够在JVM启动时或运行时动态修改字节码,实现AOP增强、热修复、性能监控等功能。JVMTI 则更进一步,作为JVM原生接口,允许开发者直接与JVM交互,获取线程状态、内存数据、方法调用栈等底层信息,是构建调试器、性能分析工具的基础。
2025-04-21 14:42:50
667
原创 OpenJDK JMH:Java 微基准测试指南
在日常 Java 开发工作中,我们会做很多的性能优化。然而,如何准确测量一段代码的性能?如何避免 JVM 的即时编译(JIT)和垃圾回收(GC)对测试结果的干扰?这就是 OpenJDK JMH(Java Microbenchmark Harness) 的核心价值。本文将深入探讨 JMH 的使用方法和适用场景,并通过实际案例帮忙我们快速入门。JMH 是 Java 开发者进行性能调优的有效工具,它能精确测量代码段微秒/纳秒下的性能,帮助开发者做出数据驱动的优化决策。
2025-04-20 16:00:39
570
原创 如何优雅的处理分布式系统幂等性问题
在分布式系统中,幂等性是保证系统可靠性的重要特性。本文将基于12306开源框架中的幂等性处理模块,深入探讨如何优雅地解决分布式环境下的幂等性问题。
2025-04-19 15:48:03
421
原创 ThreadLocal源码解析
前段时间看公司代码,很多地方用ThreadLocal保存SimpleDateFormat副本从而解决SimpleDateFormat本身线程不安全的问题,今天研究下ThreadLocal本身,从源码来看看ThreadLocal底层数据结构以及如何为每个线程都保存独立的变量副本。
2024-09-27 14:06:06
774
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人