摘要: 背景: 众所周知,高并发情况下,对于库存的操作要格外小心,处理不当可能导致库存超扣,带来不必要的损失。 超扣原因:多并发一起读,发现库存均为1,然后各扣各的,最终库存为负。 方法: 1. 悲观锁:认为要超扣,提前防止 select num from product where xxx for upd 阅读全文
posted @ 2019-01-22 21:38 变化中寻找不变 阅读(2923) 评论(0) 推荐(0)
摘要: 背景: 在 OLTP 系统领域,我们在很多业务场景下都会面临事务一致性方面的需求。 经典问题:A给B转账,需要扣A再加B。其中任何一步出现问题都需要回滚。 再现实业务场景中可能还涉及三个甚至更多业务模块交互。 相关知识:CAP定律,BASE理论等。 思路,不存在绝对的一致性,需要在业务允许的范围内, 阅读全文
posted @ 2019-01-22 17:56 变化中寻找不变 阅读(270) 评论(0) 推荐(0)
摘要: Joshua Bloch的《effective java》书中提到:单元素的枚举类型已经成为实现Singleton的最佳方法。 双重检查加锁方式 私有化构造器并不保险 享有特权的客户端可以借助AccessibleObject.setAccessible方法,通过反射机制调用私有构造器。如果需要低于这 阅读全文
posted @ 2019-01-22 14:25 变化中寻找不变 阅读(389) 评论(0) 推荐(0)
摘要: 主要是双轴快速排序,其余再最下面的链接中 双轴快速排序算法思路和三向切分快速排序算法的思路基本一致,双轴快速排序算法使用两个轴,通常选取最左边的元素作为pivot1和最右边的元素作pivot2。首先要比较这两个轴的大小,如果pivot1 > pivot2,则交换最左边的元素和最右边的元素,已保证pi 阅读全文
posted @ 2019-01-22 09:42 变化中寻找不变 阅读(1359) 评论(0) 推荐(0)