logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

分布式 SAGA 模式全解与 Java 入门示例

分布式 SAGA 模式解析与 Java 实现 摘要:SAGA 是一种分布式事务解决方案,通过将长事务拆分为多个本地事务并定义补偿操作实现最终一致性。本文详解其核心概念、两种实现模式(编排式与协同式)及适用场景,并通过 Java 示例演示协同式 SAGA 实现。示例包含账户扣款和库存扣减两个服务,重点解决幂等性和防悬挂问题,展示事务执行失败时的逆向补偿流程。相比 2PC/TCC,SAGA 更适合长事

#分布式#java#开发语言
订票系统高并发实战:基于 ZooKeeper 的分布式锁、选座与幂等回滚(Java/Curator)

本文介绍了基于Apache Curator实现分布式票务系统的关键技术方案。通过Maven引入curator-framework和curator-recipes依赖,简化ZooKeeper连接管理和分布式锁实现。系统采用层次化路径设计,使用EPHEMERAL节点确保会话失效自动释放,通过版本号实现乐观锁控制。核心流程展示了场次级分布式锁与选座操作,采用条件更新(CAS)保证并发安全,设置过期时间防

#分布式#java-zookeeper#zookeeper
Redis+Lua实现分布式限流时,确保高可用性和性能优化

本文从高可用、性能优化和运维监控三个维度,详细阐述了构建高性能Redis+Lua分布式限流器的关键技术。高可用方面强调Redis集群部署、客户端容错配置和智能降级策略;性能优化重点包括精简Lua脚本、Key分片设计和网络开销控制;运维监控则需关注核心指标监控和动态配置管理。文章提出采用多级防护架构应对高并发场景,并总结了"集群化+原子脚本+智能降级"的核心实施要点,为分布式系统

#redis#lua#分布式
面试必问:Java 资源隔离到底怎么玩?ThreadPoolExecutor + Semaphore 源码级解析

本文介绍了分布式系统中的资源隔离技术,重点对比了线程池隔离和信号量隔离两种策略。线程池隔离通过独立线程池保护关键服务,适用于网络调用等耗时操作;信号量隔离则通过计数器限制并发数,适合本地资源访问。文章深入分析了AQS框架和Semaphore实现原理,并提供了两种隔离方式的实战代码示例,包括线程池配置、超时控制和优雅关闭等关键点,帮助开发者在高并发场景下提升系统稳定性。更多分布式缓存技术可关注公众号

#分布式#架构#微服务 +1
别再发 jar 了!用 Spring Boot + jpackage 一键生成 exe / msi 安装包

本文介绍了如何使用JDK自带的jpackage工具将Spring Boot应用打包成原生安装包,解决非技术用户需要安装JDK的痛点。文章详细讲解了环境准备(需JDK 17+及平台相关工具)、构建可执行JAR包、基础打包命令参数说明(包括Windows、macOS和Linux平台的打包示例),以及通过jlink创建精简JRE来优化安装包体积的进阶技巧。最终实现"双击安装即用"的专

#jar#spring boot#java
ThreadLocal 内存泄漏:你的应用正在悄悄 OOM

凌晨 3 点 OOM,200 并发却堆出 12843 个对象。排查到最后,不是流量的问题,是 ThreadLocal + 线程池的锅。你的项目里,可能也埋着同样的雷。

文章图片
#java#jvm#elasticsearch +2
MySQL RR 隔离级幻读真相:3 段 SQL 看懂快照读与当前读的差别

MySQL RR隔离级别下幻读的真相:快照读与当前读的混合使用会导致幻读出现。纯快照读通过MVCC防止幻读,纯当前读通过Next-Key Lock防止幻读,但当同一事务中先快照读再当前读时,当前读会看到其他事务插入的数据,导致后续查询出现幻行。解决方案包括:统一使用当前读加锁、采用Serializable隔离级别、避免"先读后改"模式或在业务层处理幻读。实际业务中需根据场景选择合适方案。

文章图片
#mysql#sql#数据库
Spring @Async 默认线程池陷阱:SimpleAsyncTaskExecutor 不复用线程致 OOM(附复现代码)

不要用默认的 SimpleAsyncTaskExecutor。// IO 密集型@Async("notifyThreadPool") // 指定自定义线程池这样 @Async 就会用你的线程池,线程数有上限,不会失控。

#spring#python#java
一个 @Async 让循环依赖暴雷:Spring 代理的暗坑

回到这次事故:NotifyService 和 OrderService 互相依赖,跑了半年没报错。加了 @Async 之后,因为 @Async 的代理创建器没实现,循环依赖时三级缓存暴露的是原始对象,跟最终代理对象不一致,Spring 检测到后报错。Spring 三级缓存能解决普通 AOP(@Transactional)的循环依赖,但不能解决 @Async区别在于代理创建器是否实现了:@Trans

文章图片
#spring#java#后端
Spring Boot Actuator 被打穿:线上开了这些端点,等于裸奔

摘要: Spring Boot Actuator 若配置不当会引发严重安全风险。近期 CVE-2026-22733 漏洞暴露了认证绕过问题,需紧急排查。常见风险包括: 高危端点暴露:如 /env(泄露数据库密码)、/heapdump(内存数据)、/shutdown(远程关机)等未授权访问; 错误配置:使用 include: "*" 或启用 shutdown 功能; 漏洞影响:特定 Spring B

文章图片
#spring boot#oracle#后端
    共 29 条
  • 1
  • 2
  • 3
  • 请选择