分布式系统CAP原理及服务注册中心
一. 分布式的CAP原理
-
分布式领域CAP理论
CAP理论:指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition Tolerance(分区容错性),三者无法同时满足。
-
CAP特性介绍
- C(Consistency,一致性):指在分布式系统中的所有数据备份进行同步的更新。即分布式系统中所有数据节点保存同步。
- A(Availability,可用性):指负载过大后,集群整体是否还能响应客户端的读写请求。即在大负载下系统的响应时间仍然可以满足基本要求。
- P(Partition tolerance,分区容错性):即高可用性,一个节点宕机,不影响整个集群的正常工作。
-
理论分析
下面对三个特性不能同时满足进行简要分析:
- 当满足CA时:要保持数据一致性,就必须进行节点数据的同步;同时要满足可用性,则响应时间必须较短,就要去数据同步时间很短,这样就不能部署太多的节点,也就无法满则高可用性。
- 当CP满足时:要进行数据同步,且机器数量较多,这样数据的同步时间就会比较长,无法保证较快的响应。
- 当满足AP时:既要有一定机器数量,又要保证较快的响应时间,就无法进行节点数据的同步。
-
结论
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡。也就是说,我们设计分布式系统时,只能考虑满足CP或者是AP。
二. 常用的服务注册中心
-
Zookeeper
CP设计,保证了一致性,集群搭建的时候,某个节点失效,则会进行选举行的leader,或者半数以上节点不可用,则无法提供服务,因此可用性没法满足。
-
Eureka
AP原则,无主从节点,一个节点挂了,自动切换其他节点可以使用,去中心化,可能会产生服务节点数据不一致的情况。