Reef's Blog

hello world

​ 基于 Redisson 3.16.8版本,深入分析了红锁的设计背景及其在 Redisson 中的实现,最后讨论了红锁的局限性,并介绍了可能的替代方案。同时,还详细的分析了 Redisson 如何通过引入 WAIT 命令来优化普通分布式锁的可靠性

阅读全文 »

​ 深入对比分析了 ATTCC 模式在 网络 I/O锁资源 两个方面的性能差异,并根据分析结果提供了选择建议。最后,讨论了 AT 模式在业务中使用不当可能带来的问题,并提出了相应的解决方案

阅读全文 »

​ 基于Spring Boot 2.7.x 版本,深入分析了OnBean、OnClass、OnProperty这三类常见Condition的源码实现,在此基础上,探讨了 @Conditional 注解的组合用法与、或、非逻辑)的处理机制。

​ 同时,分析了Condition匹配结果的debug支持实现,以及 ConfigurationClassPostProcessorCondition判断的触发流程,重点关注其通过 importedBy 链支持的 TrackedConditionEvaluator 回溯与剪枝优化策略

​ 最后,提供了逻辑@Conditional组合与 importedBy路径 skip 判定的测试用例,以验证整体逻辑的正确性

阅读全文 »


​ 通过举例深入的分析了热加载场景下ThreadLocal使用不当造成的内存泄漏。并剖析了Tomcat通过实现无效的ThreadLocalMap.Entry清除ThreadLocalLeakPreventionListener回收空闲worker线程TaskQueue对取任务逻辑的重写来兜底剩余worker线程回收这三种策略来优雅的解决ThreadLocal内存泄漏的问题

阅读全文 »

​ 基于Netty 4.1.34版本,分析了 Netty 中NIO相关的 EventLoopGroupEventLoop 的核心功能和实现原理,重点涵盖了JDK Selector 的性能瓶颈与 Netty 优化策略事件循环线程的阻塞与唤醒机制(含空轮询 Bug 修复方案)、IO 事件与任务调度细节,并配套流程图直观展示 EventLoop 工作流程

阅读全文 »

​ 主要分析了嵌入式 Tomcat 的构建流程,重点对比了它和传统 Tomcat 启动方式的差异,也梳理了 SpringBoot 提供的相关扩展点,比如 ServletContextInitializerBeans 的处理逻辑。最后结合 Tomcat 启动和 Spring 单例 Bean 初始化的整体流程,对延迟绑定端口,以及整个启动顺序背后的依赖关系做了系统性的分析和思考

阅读全文 »

​ 基于 Spring Boot 2.7.x 版本,深入剖析了 @EnableAutoConfiguration 注解的实现原理,重点解析了其背后通过 DeferredImportSelector 实现的自动配置机制。特别对 @AutoConfigureBefore@AutoConfigureAfter 所涉及的 DFS 拓扑排序逻辑 进行了详细的分析,揭示了自动配置类加载顺序的核心控制机制

​ 最后,还分析了 2.7.0 版本新增的 @AutoConfiguration 注解的特殊语义,包括其与新的 .imports SPI 文件的绑定默认排除扫描机制AutoConfigurationExcludeFilter)。并给出了自己的使用建议

阅读全文 »

​ 从源码分析了Spring AOP的实现逻辑,以及利用arthas对代理class进行反编译以更加清晰的理解源码流程

阅读全文 »

​ 深入分析了 Seata 的 TCC 模式,通过实际使用案例引出了关键注解的应用。结合 TM、RM 和 TC 的工作流程,剖析了 TccActionInterceptor 在 try 阶段的实现原理,详细讲解了 TCCResourceManager 如何处理 commit 和 rollback 操作。同时,解析了 TCC_FENCE_LOG 表如何保障事务幂等性,并有效解决了悬挂和空回滚等常见问题

阅读全文 »

​ 本文深入解析了 Seata AT 模式下全局事务的提交与回滚机制,详细讲解了 GlobalTransaction 提交全局事务分支事务的异步提交以及 全局回滚的执行流程。重点探讨了 事务协调器(TC)和资源管理器(RM)如何协作完成事务提交与回滚。特别是在 并发控制与数据一致性 问题上,展示了 Seata 如何通过 UndoLog校验 机制避免“脏写”问题,并实现强一致性的全局事务回滚

阅读全文 »
0%