当前位置: 移动技术网 > IT编程>软件设计>架构 > 学会用数据说话-分布式锁究竟可以多少并发?

学会用数据说话-分布式锁究竟可以多少并发?

2018年07月09日  | 移动技术网IT编程  | 我要评论
程序员萌萌在浏览关于分布式锁的文章,突然下面的话引起了萌萌的注意:
 
 
 

在锁操作的客户端打日志

获取锁:

T13:31:51.230redisname-lock:hsetnx

E13:31:51.230GetConnection10.X.X.X

T13:31:51.231redisname-lock:hsetnx

设置超时时间:

T13:31:51.230redisname-lock:hsetnx

E13:31:51.230GetConnection10.X.X.X

T13:31:51.231redisname-lock:hsetnx

释放锁:

T13:31:51.230redisname-unlock:hsetnx

E13:31:51.230GetConnection10.X.X.X

T13:31:51.231redisname-unlock:hsetnx

从上面数据可以看到一个正常分布式锁操作,操作时间在1ms,因为是从客户端获取的,因为粒度只能是毫秒级。再从服务端看看是什么情况。

 
 

上面显示了大于1ms的慢查询情况,可以看到每秒几百个的QPS不会造成分布式锁本身的慢查询。耗时超过1ms的都是集群操作,分布式锁的lock和unlock操作时间都是us级。

    如果lock和unlock中间没有任何逻辑的理想情况下,同一个锁可以支持每秒:

   1000ms/ (1ms的lock+1ms的设置超时+1ms的unlock)=333(个)

结论

分布式锁本身lock和unlock耗时是us级,在理想情况下大概可支持每秒1000个原子操作,300多个从分配到释放流程结束。

 

举个栗子

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网