# 《拼团交易平台系统》第2-19节:独占锁和无锁化场景运用
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/o7toC (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
以独占锁抢占方式,迭代拼团结算通知互备执行任务。再以无锁化设计,处理用户拼团锁单,库存抢占处理,降低对数据库的行锁压力,提高整体吞吐量。
# 二、业务流程
如图,两种锁应对的场景;

- 分段锁,颗粒度缩小到库存维度。先加(incr)后锁的操作,是一种无锁化设计。锁的目的只是作为兜底。这类似于我们操作账户,操作完写一条流水。incr 操作是原子的,基本不会产生一样的值。但在实际生产中,遇到过集群的运维配置问题,以及业务运营配置数据问题,导致 incr 得到的值相同。
- 独占锁,在分布式架构系统设计中,会有多个实例部署。这些实例都会做job任务的执行,为了保障既能让任务互备,同时不要重复执行。这里要加独占锁,谁抢占到谁执行。执行完成后,释放锁,下一轮继续抢占。