可用性

架构区别

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

在直接kill Cassandra一个节点的进程情况下,服务没有任何影响。