关于四种不同方式的性能对比
来源:10-1 分布式锁常见面试题解析

火源之地小白人
2024-05-30
老师,有俩问题
问题一:课件上的性能,从高到低是
- Redis
- ZooKeeper
- etcd
- MySQL
但不论你的、我的JMeter压测结果,【MySQL悲观锁】看起来性能都是仅次于【Redisson】的(我关注的是聚合报告中的平均值 + 吞吐量),不像课件中说的垫底啊,这是为什么呢?
- 老师的压测结果
- 我的压测结果
问题二:同样都是基于Redis实现,为啥咱的【Lua手撸版】比【Redisson】性能差这么多,是因为知名开源框架,实现方式比咱们更好吗😂?
写回答
1回答
-
问题一:出现mysql分布式锁性能优于redis分布式锁,主要可能有几点原因:
1、锁冲突次数多导致性能低;redis请求较快,我们的代码实现,对于锁冲突场景重试,间隔50ms。由于redis性能较高,那么锁重试次数较多。可以看一下3-3那节,当我们不加重试获取时间,while true的时候,吞吐量才在100多。
2、请求量低:当请求量大,mysql无法快速处理请求的时候,mysql实现分布式锁性能会越来越差。
问题二:redisson性能更好。
1、redisson基于Netty框架,支持非阻塞IO操作,在处理高并发请求的时候非常出现。
2、线程池实现也是redisson比我们实现代码更优秀的地方。
00
相似问题