CAP原则学习
CAP介绍
前言:今天背面试题,看到了Zookeeper和Eureka的区别,看到了CAP原则(尴尬了Zookeeper 之前学kafka的使用配置过Zookeeper集群,但是忘得差不多了),之前使用这些服务注册的时候并没有看什么原理,倒是能够直接上手,以后还是多看看原理吧,不浮在表面了
百度百科介绍
CAP又称为CAP原理,是指在分布式中,C (Consistency)一致性, A (Availability)可用性, P(Partition tolerance) 分区容错性,三者不可兼得,最好的情况就是满足其中两种情况。
推荐一个很好的文章,这里也方便以后复习
一致性
分布式系统中,所有备份数据在同一时刻都是一样的(等同于所有节点访问同一份最新数据副本)
可用性
在集群中部分节点出现故障后,不影响客户端的读写操作(对数据更新具备高可用性)
分区容错性
分布式系统中某个节点或者网络分区故障后,不影响整个系统的正常运行,任然能够对外提供可用的服务。几个机器宕机,不影响系统正常运行
结论
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于网络硬件肯定会出现延迟丢包等问题
CA:一致性+可用性
CP:一致性+分区容错性
AP:可用性+分区容错性
分区容错性一般都是要实现的,服务都无法用了,怎么进行其他操作,所以一般P是必须要的,所以只能在CA之间进行权衡
这些都没用过,先留着地址
rdbms
couchdb
cassandra
dynamodb
riak
habse
CA:传统的数据库oracle
AP:大多数网站架构的选择
CP:redis,mongodb
猪记性不如烂笔头!