
偷偷总结
文章平均质量分 70
各种低调的总结
闲狗
悠闲的狗生
展开
-
解决 ShardingSphere 第一次请求慢的喷血日子
学习起因:整合了 ShardingSphere 的项目第一次访问的时候很慢,第二次访问的时候速度就快了,然后老大让我去一探究竟,然后下面就是探索的血泪史。通过 Arthas 生成火焰图,定位到慢在ShardingSphere sql 解析,第一次请求使用 ANTLR 解析 SQL 耗时较长,而第二次请求由于缓存原因耗时很小curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jarprofiler s.原创 2021-05-05 13:47:09 · 7339 阅读 · 3 评论 -
电商相关问题总结
2)数据库层面使用订单号做唯一索引,或者基于乐观锁增加 version 字段。下单后冻结库存,冻结优惠券,订单号+类型做幂等,失败重试,订单状态为待支付。监听到订单下单失败的消息,回滚库存,回滚优惠,删除延时队列的任务,失败重试。,保证同一时间只有一个下单逻辑在运行(同一用户下)支付成功后核销库存,核销优惠券,订单状态为已支付。下单成功后,异步提交延时任务到延时队列。3 如何保证库存扣减数据一致性。1)业务层使用分布式锁。2 如何解决重复下单。原创 2023-02-20 13:14:13 · 365 阅读 · 0 评论 -
学支付的无聊日子
正值青春的年纪,却过着每天学习的无聊生活。一 支付的种类原创 2021-04-17 21:57:09 · 540 阅读 · 0 评论 -
那些年踩过的 MySQL 索引的坑
需求:修复表数据,修改会员订单表p_member_order 的 pay_time,同步修改会员子订单表p_member_order_item 的pay_time,这两个操作需要加事务。p_member_order 的数量量为1883 1645,p_member_order_item 的数据量为3252 7087实现类:@Component@Scope("prototype")public class FixOrderPayTimeToolsAction extends Adm...原创 2021-03-04 18:19:02 · 376 阅读 · 5 评论 -
那些年踩过的并发环境重复插入数据的坑
临近下班,消费订单表突然惊现两条一模一样的订单数据消费订单表没有加唯一索引,平时只会有一台服务器在消费订单,不会出现并发消费的情况。今天不停改线上bug,频繁发布 2 台线上机器,可能导致有一瞬间,两台机器同时在消费该订单导致。那么,问题来了???怎样规避并发环境下重复插入数据???...原创 2021-03-11 19:26:07 · 325 阅读 · 0 评论 -
开发小技能
1 字段命名确保只有两种状态就命名 isXxx;有多种状态则命名 xxxType2 返回参数集合返回一个空对象,对象才返回null3 异常异常不能抛给前端,后端捕获处理4 需求分析思考这个功能牵扯到什么业务,怎样去实现 看到列表的需求要想到怎样排序,是否需要分页5 Java 基础== 比较地址,equals 比较值 包装类只能比较常量池里的-128~127,如 10000 == 10000 会返回 false 6 RPC 调用不建议调用其他项目的页面接口原创 2021-10-25 01:58:13 · 273 阅读 · 0 评论