问题描述
由于公司有答题发红包活动的需求,活动相当于是送红包,也不存在抢红包的概念。就是每日有一个限额,比如一万。对于发红包的业务来说,必须要用事务加上锁比较合适,但是看了网上的解决方案,大多是推荐用乐观锁,但是乐观锁存在有被驳回的情况。由于我们的需求是只要是答对就发红包,而题目基本就是送分题,所以导致发红包的量很大
问题出现的环境背景及自己尝试过哪些方法
最早没有用锁机制就会发现往往会超发几块钱,后面加了排它锁,发现数据库执行会边长,并发量一大就会导致阻塞。
由于公司有答题发红包活动的需求,活动相当于是送红包,也不存在抢红包的概念。就是每日有一个限额,比如一万。对于发红包的业务来说,必须要用事务加上锁比较合适,但是看了网上的解决方案,大多是推荐用乐观锁,但是乐观锁存在有被驳回的情况。由于我们的需求是只要是答对就发红包,而题目基本就是送分题,所以导致发红包的量很大
最早没有用锁机制就会发现往往会超发几块钱,后面加了排它锁,发现数据库执行会边长,并发量一大就会导致阻塞。
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
可以考虑将1万个红包的code写入redis。答对之后之前从redis取出数据,并发操作由redis保证