提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、cap是什么?
CAP原则又称CAP定理,是指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition toltolerance(分区容错性),三者不可同时兼得(指不能同时达到最佳效果)。三者分别介绍如下。
一致性,分布式系统的所有主机中在同一时刻可以保证具有完全相同的数据备份。
可用性,在集群中,如果部分节点发生故障,是否会影响对客户端读写请求的响应。注意,如果短时间内会有影响,那么也不满足这里所说的可用性。
分区容错性,百度百科说分区容错性是指系统能够容忍节点之间的网络通信故障,就是说集群因为网络啊,机器故障等原因,使得集群内机器间的通讯受阻,从而服务器分成了几个区域(分区),集群对这种情况的包容度。每一个节点都可以一个分区,分布式中多个机器存着相同的数据,所以分区容错性是必须的,不然不能体现分布式集群的能力。
二、zookeeper和eureka的区别
1.zookeeper
zookeepr采用cp原则,当服务器master崩掉以后,zookeeper会重新选取leader,
在选取的时间内zookeeper集群整个时间内都是瘫痪的。
2.eureka
eureka采用的是ap原则,各个节点都是平等的,当某个节点崩掉之后会自动选取新的可用节点,只要有一台eureka存在,服务便可以使用,只不过不是最新的数据,如果在15分钟内存在85%以上的节点无正常心跳,会有以下几种情况
1.不会从注册列表中移除因为长时间正常心跳而过期的服务
2.仍然能够注册新的注册和请求,但是不会同步到其他节点上
3.当网络稳定之后会同步到其他的节点中
euraka可以很好的应对网络故障导致的部分节点丢失的情况。