validSkToken会不会有并发问题
来源:18-6 使用缓存加速令牌锁功能

码上修
2023-06-15
validSkToken这个方法里面将令牌数量从数据库中同步到缓存中的时候会不会有并发问题
写回答
1回答
-
会有的,比如两个线程都读到缓存没数据,都去数据库取数据,此时有可能造成不一致。但并发问题要分两面看,防止并发读写而加锁,可以保证数据一致性,但是需要引入额外的开销的,有可能会减少吞吐量。而令牌这个场景,对数据不是强一致性的,比如设置了2000令牌,实际发出去了2010令牌有关系吗?所以不需要加锁。
这个问题和事务类似,不是所有对数据的操作都应该加事务,比如我们的购票,假设流程上有下单和扣减库存,这时就不能加事务,不能因为扣库存不成功,而把下单也回滚了,订单是很重要的信息,一定要留在表里,不能轻易删除或回滚。
40
相似问题