数据库,Redis(Redisson), Zookeeper
三种方案的比较
上面几种方式,哪种方式都无法做到完美。就像CAP一样,在复杂性、可靠性、性能等方面无法同时满足,所以,根据不同的应用场景选择最适合自己的才是王道。
从理解的难易程度角度(从低到高)
数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)
Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)-> redis 写入内存就返回,然后再同步其他节点,所以快
缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)-> zookeeper 同步完再返回,即使节点挂了恢复后数据还在,所以可靠性高Zookeeper > 缓存 > 数据库