This action will force synchronization from shishan100/Java-Interview-Advanced, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
分段加锁
有好多同学出去面试,聊到分布式锁这块,都被人考察分布式锁能不能抗高并发的问题了
对某个商品下单,对一个分布式锁每秒突然有上万请求过来,都要进行加锁,此时怎么办呢?可能就会导致你
比如你的苹果库存有10000个,此时你在数据库中创建10个库存字段
一个表里有10个库存字段,stock_01,stock_02,每个库存字段里放1000个库存
此时这个库存的分布式锁,对应10个key,product_1_stock_01,product_1_stock_02
请求过来之后,你从10个key随机选择一个key,去加锁就可以了,每秒过来1万个请求,此时他们会对10个库存分段key加锁,每个key就1000个请求,每台服务器就1000个请求而已
万一说某个库存分段仅仅剩余10个库存了,此时我下订单要买20个苹果,合并扣减库存,你对product_1_stock_5,加锁了,此时查询对应的数据库中的库存,此时库存是10个,不够买20个苹果
你可以尝试去锁product_1_stock_1,再查询他的库存可能有30个
此时你就可以下订单,锁定库存的时候,就对product_1_stock_5锁定10个库存,对product_1_stock1锁定10个库存,锁定了20个库存
分段加锁 + 合并扣减
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。