面试题答案
一键面试主从同步
- 策略简述:存在一个主节点(Master)和多个从节点(Slave)。主节点负责处理写操作,数据更新后将日志或变更信息同步给从节点,从节点接收并应用这些变更以保持数据一致性。从节点主要用于读操作,分担主节点读压力。
- 适用场景:
- 读多写少场景:例如新闻资讯网站,文章发布(写操作)相对较少,而用户浏览(读操作)量巨大。主节点进行文章发布,从节点为大量用户提供浏览服务。
- 数据一致性要求相对不高实时性场景:如某些允许一定时间内数据不一致的统计类业务,允许从节点数据稍有延迟。
多活数据中心同步
- 策略简述:多个数据中心同时对外提供服务,每个数据中心都具备完整或部分业务处理能力。数据在多个数据中心之间进行同步,以保证各个数据中心的数据一致性。同步方式可以是异步或同步的,异步同步一般有一定延迟,同步同步则实时性更强但对网络要求高。
- 适用场景:
- 高可用性要求极高场景:如金融交易系统,任何一个数据中心故障都不能影响业务的正常进行,多个数据中心同时运行,一个故障其他数据中心仍能提供服务。
- 地域分布广且需快速响应场景:全球电商平台,不同地区的数据中心可快速响应当地用户请求,同时通过数据同步保持数据一致性。
对等同步(P2P同步)
- 策略简述:系统中每个节点地位平等,无主从之分。任何一个节点的数据变更都会传播给其他所有节点,节点间相互同步数据。
- 适用场景:
- 去中心化应用场景:如区块链系统,各个节点共同维护数据账本,每个节点都可以进行数据验证和同步,不存在单一的控制中心。
- 小规模且数据更新频率不高场景:如小型分布式数据库,节点数量不多,数据变更不频繁,采用对等同步可避免复杂的主从架构。
基于日志的同步
- 策略简述:主节点将数据操作记录到日志中,然后将日志发送给从节点。从节点按照日志顺序重新执行这些操作,从而达到数据同步的目的。这种方式能保证数据操作的顺序性和一致性。
- 适用场景:
- 对数据操作顺序敏感场景:如数据库事务处理,保证事务在各个节点按相同顺序执行,确保数据一致性。
- 数据恢复场景:当从节点数据丢失或损坏时,可通过重放日志恢复到最新状态。