优势
1. 无中心架构。
2. 数据按照slot 存储分布在多个节点,节点间数据共享,可动态调整数据分布。
3. 可扩展性,可线性扩展到1000 个节点(官方推荐不超过1000 个),节点可动态添加或删除。
4. 高可用性,部分节点不可用时,集群仍可用。通过增加Slave 做standby 数据副本,能够实现故障自动failover,节点之间通过gossip 协议交换状态信息,用投票机制完成Slave 到Master 的角色提升。
5. 降低运维成本,提高系统的扩展性和可用性。
不足
1. Client 实现复杂,驱动要求实现Smart Client,缓存slots mapping 信息并及时更新,提高了开发难度,客户端的不成熟影响业务的稳定性。
2. 节点会因为某些原因发生阻塞(阻塞时间大于clutser-node-timeout),被判断下线,这种failover 是没有必要的。
3. 数据通过异步复制,不保证数据的强一致性。
4. 多个业务使用同一套集群时,无法根据统计区分冷热数据,资源隔离性较差,容易出现相互影响的情况。