【Java毕设合集】20套毕设系统项目(附源码),任意挑选,进来白嫖_20个Java练手项目_Java开发_Java项目_哔哩哔哩_bilibili
实现思路 | 优点 | 缺点 | |
---|---|---|---|
利用mysql实现方案 | 利用数据库自身提供的锁机制,要求数据库支持行级锁 | 实现简单,稳定可靠 | 性能差,无法适应高并发场景;容易出现死锁的情况;无法优雅的实现阻塞式锁 |
利用redis的实现方案 | 使用setnx和lua脚本机制实现,保证对缓存操作序列的原子性 | 性能好 | 实现相对较复杂,有出现死锁的可能性,无法优雅的实现阻塞式锁 |
利用zookeeper的实现方案 | 基于zk的节点特性以及watch机制实现 | 性能好,稳定可靠性高,能较好的实现阻塞式锁 | 实现相对复杂 |
从理解的难易程度角度(从低到高)
数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)
Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)
缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)
Zookeeper > 缓存 > 数据库