上一篇 <<<Zookeeper如何实现分布式锁
下一篇 >>>Zookeeper选举的策略
CAP理论
① C:Consistency,一致性,在分布式系统中所有数据备份,在同一时刻必须要一致,也就是所有节点访问同一份最新的数据副本
② A:Availability,在集群中部分节点宕机之后,仍然能够保证服务可用;
③ P:Partition tolerance,分区容错性。在分布式系统中网络分区存在脑裂问题以后,部分server与集群其他节点失去联系,无法组成一个群体;
比如停电了、光纤被挖断等导致网络不可用
目前我们当前技术环境下,P是肯定会存在的,又不能同时满足CA,所以只能满足CP或者AP
网络分区(脑裂):
在集群的情况下,一般只会选举一个master节点、其他都是为从节点,那么如果发生了网络抖动或者部分节点相互无法通讯那么就会导致部分节点从新选举,这样就会存在多个master节点;
为什么不能保证ca呢?
因为我们服务节点宕机之后,很难保证同一时刻同步问题。
BASE理论
强一致性:
步骤1在修改数据库的userName为Jarye2的时候,步骤2读取的userName内容也必须是修改后的数据;
实现方式:mysql主从复制非常迅速同步或者是使用锁机制必须等待mysql1数据同步到mysql2 这时候才可以读取;
注意:在分布式领域中是不可能保证强一致性;
弱一致性:
允许数据库之间同步存在短暂的延迟,步骤2可以读取userName内容为Jarye而不是必须为Jarye2;这种我们可以称作为弱一致性;
最终一致性:
允许步骤2读取userName为Jarye,中间允许数据库存在短暂延迟、但是最终读取数据结构必须为Jarye2,所以这种访问我们称作为最终一致性;
推荐阅读:
<<<Zookeeper基础知识及应用场景
<<<Zookeeper如何实现分布式锁
<<<Zookeeper选举的策略
<<<为什么Zookeeper集群节点一定要是奇数
<<<Zookeeper在后期新增zk节点时如何提高选举效率问题
<<<Zookeeper如何保证节点一致性问题
<<<Zookeeper的Zab一致性协议原理
<<<Zookeeper实现哨兵选举机制
<<<Zookeeper示例之访问权限控制
<<<Zookeeper示例之服务发现与治理
<<<Zookeeper示例之分布式锁
<<<Zookeeper示例之节点事件监听
<<<Zookeeper示例之集群请求
<<<Linux环境安装Zookeeper
<<<Zookeeper配置文件介绍
<<<Zookeeper常见问题
<<<Eureka与Zookeeper有啥区别?
<<<Zookeeper常用命令