用户工具

站点工具


分享:技术:分布式:分布式锁

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
分享:技术:分布式:分布式锁 [2017/05/15 07:33]
gxx 创建
分享:技术:分布式:分布式锁 [2017/05/15 07:40] (当前版本)
gxx
行 8: 行 8:
 ===== 场景三 ===== ===== 场景三 =====
 支付场景:一笔充值完成,银行前端和后端同时返回成功,对于同一笔交易,不能两次给用户加余额。 支付场景:一笔充值完成,银行前端和后端同时返回成功,对于同一笔交易,不能两次给用户加余额。
 +===== 解决方案 =====
 +常用的四种方案:​
 +  - 基于数据库表做乐观锁,用于分布式锁。
 +  - 使用memcached的add()方法,用于分布式锁。
 +  - 使用redis的setnx()、expire()方法,用于分布式锁。
 +  - 使用redis的setnx()、get()、getset()方法,用于分布式锁。
  
 +不常用但是可以用于技术方案探讨的:​
 +  - 使用memcached的cas()方法,用于分布式锁。 ​
 +  - 使用redis的watch、multi、exec命令,用于分布式锁。
 +  - 使用zookeeper,用于分布式锁。
  
- +参考:[[http://​www.cnblogs.com/​PurpleDream/​p/​5559352.html|分布式锁1 Java常用技术方案]]
- +
分享/技术/分布式/分布式锁.1494804833.txt.gz · 最后更改: 2017/05/15 07:33 由 gxx