如何实现分布式事务锁?


最近做遇到一个问题,WEB项目中有一个兑换商品的功能,商品的数量是有限的,但是由于项目是分别部署到若干个机器上,在并发的情况下会导致商品的数量已经是0的情况下也兑换成功了,所以想实现一个分布式的锁,控制同一时间获得兑换的资源只能有一个,那么如何实现?有什么好的思路呢?
或者不用分布式锁怎么解决这个问题呢?

分布式 java

经常晚到一步君 12 years, 2 months ago

简单一点就是队列,队列先进先出,出完了就没有了。商品10 插入队列,怎么争抢都不会出现两个人同时获取到一个值。如果怕数据丢失那就用FQueue,我不知道你是用什么语言,FQueue是可以保存在文件不丢失的。FQueue可以进程内也可以进程外。进程外就不管什么语言都可以。进程内不是java语言就要自己实现一下了。内存映射+文件。FQueue的添加都是bytes,所以你可以将一条数据(N多字段)序列化成bytes到FQueue,谁取到了拿着票号就去服务器去兑换。

5856890 answered 12 years, 2 months ago

Your Answer