TAG

#Spring

共 5 篇文章

Spring @Cacheable 的 sync 属性:缓存击穿下的同步加载与锁竞争

本文深入解读 Spring @Cacheable 的 sync 属性如何通过同步控制防止缓存击穿,重点分析在高并发下 sync=true 为何可能导致锁竞争,以及如何与 Redis 等缓存提供者的原子操作配合。通过热点数据过期场景,读者将理解 Spring Cache 拦截器的同步机制、不同缓存提供者的锁实现,以及通过自定义 CacheErrorHandler 处理异常,从而获得避免缓存击穿和锁问题的配置方法。

Spring @Async 线程池拒绝策略:CallerRunsPolicy 下的上下文传播与死锁风险

本文剖析 Spring @Async 默认线程池的拒绝策略,重点讨论 CallerRunsPolicy 在任务堆积时如何导致调用线程阻塞、上下文丢失甚至死锁。通过一个高并发异步任务堆积的贯穿场景,解释 ThreadPoolTaskExecutor 的配置与拒绝策略行为,并给出自定义拒绝策略和上下文传播的解决方案,帮助读者根据任务特性选择合适的拒绝策略。

Spring @Transactional 传播行为与隔离级别的交互陷阱:订单创建与库存扣减中的幻读与死锁

本文剖析 Spring 声明式事务中传播行为(特别是 REQUIRES_NEW)与数据库隔离级别的组合效应。通过订单创建与库存扣减的跨服务事务编排场景,解释 Spring 事务管理器如何映射传播行为到 JDBC 连接、保存点与事务同步,并分析不同隔离级别下的锁行为与异常路径。读者将获得避免事务边界错误和性能问题的决策矩阵,并理解为何默认隔离级别可能不适用于高并发写操作。