MST
星途 面试题库

面试题:微服务架构中不同配置中心架构在高可用场景下的差异

在高可用的微服务场景下,对比ETCD、Nacos这两种配置中心架构,它们在应对网络分区、节点故障时,保障配置数据可用性和一致性的机制有何不同,结合具体的技术原理进行说明。
15.3万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

1. ETCD

  • 应对网络分区
    • 技术原理:ETCD基于Raft一致性算法。在网络分区时,Raft算法会将集群节点分为不同的分区。正常情况下,Raft集群通过选举产生一个领导者(Leader)负责处理客户端的写请求。当发生网络分区后,如果领导者所在的分区包含多数节点(超过半数),那么该分区的节点依然可以继续提供服务,保持数据的一致性和可用性。而少数节点的分区由于无法形成多数派,不能产生新的领导者,也就无法处理写请求,从而避免了数据不一致问题。例如,一个5节点的ETCD集群,若网络分区后,一个分区有3个节点,另一个分区有2个节点,有3个节点的分区能继续正常工作,2个节点的分区无法进行写操作。
  • 应对节点故障
    • 技术原理:当某个节点发生故障时,Raft算法会触发新一轮的选举。集群中的其他节点会检测到故障节点的心跳消失,然后开始投票选举新的领导者。在选举过程中,每个节点会根据自己保存的日志信息来投票,选择日志最完整的节点作为新的领导者。新的领导者当选后,会与其他节点进行数据同步,确保所有节点的数据一致性。比如,若一个节点故障,剩余节点会进行选举,新领导者会让其他节点追加自己的日志,达到数据一致。

2. Nacos

  • 应对网络分区
    • 技术原理:Nacos支持AP(可用性优先)和CP(一致性优先)两种模式。在AP模式下,Nacos采用Distro协议。当发生网络分区时,每个分区内的节点都可以独立提供服务,以保证配置数据的可用性。各个分区内的节点会在本地维护数据副本,即使与其他分区失去联系,也能继续为本地客户端提供配置数据。不过,这种模式下不同分区的数据可能在一段时间内存在不一致情况,直到网络恢复后进行数据同步。在CP模式下,Nacos采用Raft协议,与ETCD类似,通过多数派来保证数据的一致性和可用性。例如,在AP模式下,网络分区后两个分区的Nacos节点都能提供配置读取服务,但数据可能暂时不同步。
  • 应对节点故障
    • 技术原理:在AP模式下,当某个节点故障时,其他节点可以继续提供服务,因为每个节点都有本地数据副本,对整体可用性影响较小。故障节点恢复后,会从其他节点同步数据,达到最终一致性。在CP模式下,与ETCD类似,节点故障会触发Raft选举,选举出新的领导者,新领导者会与其他节点同步数据以保证一致性。例如,AP模式下一个节点故障,其他节点不受影响,故障节点恢复后从其他节点同步数据。