面试题答案
一键面试常见一致性级别
- ONE:只要集群中的一个副本接收到写请求,写操作就被认为成功。
- QUORUM:写操作需要在超过半数(N/2 + 1,N为副本数)的副本上成功,才被认为成功。
- ALL:写操作需要在所有副本上都成功,才被认为成功。
实际应用场景下的风险
- ONE:
- 风险:数据持久性较低。如果写入的单个副本出现故障,在修复或替换副本之前,可能会丢失数据。适用于对数据一致性要求不高,更注重写入性能和可用性的场景,例如日志记录等。
- QUORUM:
- 风险:可能出现短暂的数据不一致。在写操作完成后,部分未参与写成功的副本可能仍保留旧数据。在读取时,如果恰好读到这些旧数据副本,就会出现不一致。适用于大多数读多写少,对一致性有一定要求,但能接受短暂不一致的场景,如社交网络中的部分用户资料更新等。
- ALL:
- 风险:写入性能较低,可用性较差。只要有一个副本不可用,写操作就会失败。适用于对数据一致性和完整性要求极高的场景,如金融交易记录等。