CAP 理论
在分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerence(分区容错性)
最多实现两点。在分布式系统中必须保证分区容错性,也就是说只能在一致性和可用性之间进行权衡。
为什么 CAP 只能实现两点
- CA 满足的情况下, 即要求数据同步,同时响应要快,这样既必须减少节点数量,导致无法满足分区容错性
- CP 满足的情况下,即要求数据同步,同时要多节点,这样的多节点数据同步会耗时,导致无法满足可用性
- AP 满足的情况下,即要求正常时间响应,又要多节点,那么数据必然不能保证及时同步到其他几点,导致不能满足一致性
SpringCloud 中注册中心的选择
- Zookeeper: CP 设计:某个节点失效,会进行选举新的 leader,选举时无法提供服务或者半数以上的节点失效时,则无法提供服务。
- Eureka: AP 设计:去中心化,无主从节点,自动切换成其他节点。