突然不太懂分布式锁

来源:11-6 实现分布式锁-Redis

Key_BoardFinger

2024-05-09

老师我不知道我哪里理解出了问题。

假如同一个用户上传两个相同文件A,称为A1任务和A2任务,如果文件划分为50个分片,分布式锁的粒度是用户id和md5,为什么分布式锁可以实现先让A1任务先上传完所有分片呢?划分为50个分片意味着调用50次upload接口,每次执行完upload接口上传一个分片后就解锁了,那A2任务也是能抢到这个机会上传资源的吧,这里是前端做的什么额外的操作,还是我对锁的解锁时机的理解出现了什么问题,麻烦老师指点

写回答

2回答

RubinChu

2024-05-09

想要避免这个问题,就在开启一个分片上传任务的时候生成任务的标识,分布式锁力度按照用户ID,md5和上传任务标识来组装就能解决这种极限场景的问题

0
0

RubinChu

2024-05-09

同学讲的是一个极限场景,我们的服务端并没有做类似的保障,如果同学测试可以通过的话,那就是前端的上传组件会将一个文件的所有分片上传完成之后在上传另一个文件,如果相同的文件并发上传,服务端应该会崩溃,同学的理解没有问题

0
0

SpringBoot+Vue3+Element Plus打造私人分布式存储系统

SpringBoot+Vue3+Element Plus 仿百度网盘实战

274 学习 · 347 问题

查看课程