架构区别
cassandra在高可用配置的情况下,无需超时检测及log回放,对系统的影响时间为毫秒级,基本无感知。
QUORUM | HA机制 | Raft | Region | |
---|---|---|---|---|
故障感知 | Coordinator/客户端重试、无等待超时时间 + 无log回放 ,无选主时间 | 客户端重试、超时检测、log回放 | 客户端重试、重新选leader | 客户端重试、超时检测、log回放 |
感知时间 | 毫秒 | 10秒~10分钟 | 10秒~10分钟 | 1分钟~10分钟 |
代表系统 | Cassandra | RDS主备、MongoDB主备、Redis主备 | - | HBase |
高可用配置建议
高可用配置基本要求:
- 数据副本数大于等于2,建议配置3副本。
- Cassandra集群节点数需大于等于副本数。
- 读写一致性配置:在副本数配置大于等于3时,建议配置Quorum读写一致性。不可配置要求所有数据副本所在节点均读/写成功才成功的策略,例如配置了三副本,一致性配置了ALL,即读或写操作要求三个数据副本所在节点均读或写成功才成功,此情况下,若数据副本所在的任何一个节点故障,则数据库就无法读/写,无高可用保障。
故障模拟
3个2cpu4g的节点,在高压力写的情况下,直接kill一个节点,客户端的反馈如下:
在直接kill Cassandra一个节点的进程情况下,服务没有任何影响。