
分布式
文章平均质量分 78
爱叨叨的程序狗
码农,不只Coding.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自动挡线程池OOM最佳实践
配置完成后可启动SpringBoot项目调用接口等待OOM,待项目发出OOM错误后,可以去配置的路径下查找dump文件,一般以hprof为后缀,打开IDEA中的Profiler,将文件拖入Profiler即可,需要注意的是不同版本IDEA操作可能略有不同,可自行百度操作方式也可参考IDEA官网给出的操作教程。打开dump文件后可以看到程序在出现OOM错误时的资源占用情况,我们分配的最大堆内存是512MB,分析dump文件可以发现。占用了516MB的内存,并且频繁触发GC Root,我们查看。原创 2025-04-07 20:12:16 · 589 阅读 · 0 评论 -
Best practice-生产环境中加锁的最佳实践
场景:图书馆有两个相邻的储物柜(柜子A和柜子B),小明和小红需要同时使用这两个柜子才能完成借书流程。互斥资源每个柜子只有一把钥匙,且一次只能被一人使用(资源不可共享)。持有并等待小明拿到了柜子A的钥匙,但他说:“我要等小红用完柜子B的钥匙,才能继续操作。小红拿到了柜子B的钥匙,但她说:“我要等小明用完柜子A的钥匙,才能继续操作。僵局形成两人都死死攥着已有的钥匙,同时等待对方手里的另一把钥匙。结果两人卡在原地,谁也无法完成借书流程。死锁的定义。原创 2025-03-06 20:52:54 · 847 阅读 · 0 评论 -
分布式事务
A模块Mapper直接操作DB得到数据集 使用Feign调用B模块 B模块Mapper操作DB得到数据集 合并1,3两步操作或者其他操作 可举例:购物,走DB,库存-1,买家扣钱。 1:库存 2:查询到还有库存,下单,调用支付API扣钱 3:银行卡扣钱 4:判断1、3的结果 分析以上步骤可能抛出异常的情景: 步骤1发生异常,Spring事务回滚 步骤2发生异常,Spring事务回滚 步骤3发生异常,3的服务实现自动回滚,2根据3的返回值来决定是否回滚 步骤四出险异常,1自动回滚,3的操作不会回滚,..原创 2022-02-15 13:43:38 · 198 阅读 · 0 评论