后端
lucasgao67
这个作者很懒,什么都没留下…
展开
-
Tidb + 分布式锁实现幂等--golang实现奖品发放系统
文章目录问题背景解决方案方案1:事务方案2:分布式锁方案三 分布式锁优化github地址问题背景最近业务上遇到这样的场景,觉得很有代表性,所以拿来说一说。我们有一个奖品发放系统,当用户申请奖品的时候,首先需要判断用户有没有申请过奖品,如果没有申请过,则去奖品总量扣除一个,然后再把用户申请记录写回数据库。流程如下:时序事件t1检测用户申请过奖品t2奖品扣除...原创 2019-07-07 17:30:09 · 499 阅读 · 0 评论 -
干货 all goroutines are asleep - deadlock 详尽案例分析
我们学习通道channel的时候,偶尔会在测试的时候遇到 all goroutines are asleep这样的panic错误,但是这个是怎么造成的呢。本文首先会介绍产生这个的原因,然后会结合具体案例进行详细分析。错误原因这个错误其实已经写的比较明白了,所有的 协程(goroutines)都处于休眠(阻塞)状态。当所有协程都处于阻塞状态的时候,那所有的协程都等不来解锁的那一天了,出现死锁,所...原创 2019-07-10 00:32:29 · 492 阅读 · 0 评论