关于四种不同方式的性能对比

来源:10-1 分布式锁常见面试题解析

火源之地小白人

2024-05-30

老师,有俩问题

问题一:课件上的性能,从高到低是

  1. Redis
  2. ZooKeeper
  3. etcd
  4. MySQL
    图片描述

但不论你的、我的JMeter压测结果,【MySQL悲观锁】看起来性能都是仅次于【Redisson】的(我关注的是聚合报告中的平均值 + 吞吐量),不像课件中说的垫底啊,这是为什么呢?

  • 老师的压测结果
    图片描述
  • 我的压测结果
    图片描述

问题二:同样都是基于Redis实现,为啥咱的【Lua手撸版】比【Redisson】性能差这么多,是因为知名开源框架,实现方式比咱们更好吗😂?

写回答

1回答

Er十七

2024-08-04

问题一:出现mysql分布式锁性能优于redis分布式锁,主要可能有几点原因:

1、锁冲突次数多导致性能低;redis请求较快,我们的代码实现,对于锁冲突场景重试,间隔50ms。由于redis性能较高,那么锁重试次数较多。可以看一下3-3那节,当我们不加重试获取时间,while true的时候,吞吐量才在100多。

2、请求量低:当请求量大,mysql无法快速处理请求的时候,mysql实现分布式锁性能会越来越差。

问题二:redisson性能更好。

1、redisson基于Netty框架,支持非阻塞IO操作,在处理高并发请求的时候非常出现。

2、线程池实现也是redisson比我们实现代码更优秀的地方。

0
0

Java主流分布式解决方案多场景设计与实战

本课程是一门关于分布式系统下常见的解决方案的课程

178 学习 · 49 问题

查看课程