IT评测·应用市场-qidao123.com技术社区

标题: 分布式锁 Redis vs etcd [打印本页]

作者: 石小疯    时间: 2025-1-11 08:46
标题: 分布式锁 Redis vs etcd
为什么要实现分布式锁?


为什么需要分布式锁,分布式锁的作用是什么,哪些场景会利用到分布式锁?

为什么需要分布式锁

分布式锁的作用

分布式锁的利用场景

分布式锁的实现方式有哪些


分布式锁的焦点原理是什么


如何实现分布式锁

redis(自旋锁版本)


etcd 的分布式锁(互斥锁(信号控制)版本)

etcd 没有像 redis 那样 setnx 的下令,但是他的 Revision(版本号)与 watch 机制可以实现锁

分布式锁对比

redis vs etcd

性能: 吞吐量
redis: 性能本身就更好,redis 有 20w 并发
redis 的性能瓶颈在网络 io,Reds 利用的 tcp 的协议,io 的性能就是 20 万
etcd 要略低只有 10 多万作用
etcd 利用的 grpc 的架构,底层是 http2 的传输协议; grpc 的性能是 15 万的 qps,所以 etcd 的性能只有 15 万左右
强同等性
Redis 分片的意外瓦解大概会导致锁的原子性被粉碎
解决方法:redlock 模式
etcd 集群本身具有强同等性,不需要担心单个实例的瓦解粉碎锁原子性的问题


服务器的影响:
redis 利用的自旋的形式获取锁,会斲丧一定的服务器 cpu
etcd 是等待信号通知的形式(watch),不需要自旋与循环,对服务器性能影响小

实例储存的数据量
Redis 一个 lock 只需要维护一个 k-v 对,储存数据少,但是 Redis 大概会处理大量自旋哀求.
etcd 每一个线程的获取锁都是一个 k- v 对,储存的数据多,而且要维护所有线程的连接,开销大,不能同时担当太多获取锁的哀求,否则会资源耗尽(连接)(假如并发数目高,而且有线程长期持有锁大概会导致连接的大量堆积)
总结

参考:
https://blog.csdn.net/qq_16399991/article/details/130732780
https://time.geekbang.org/column/article/350285
https://blog.csdn.net/boonya/article/details/117307663

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4