zookeeper
- 概念:分布式协调服务的开源框架,用来管理集群
zookeeper集群架构
- 集群部署需要以奇数为准,最少三台
- leader 主节点
-
- 管理从节点
- 负责数据的事务操作(增、删、改)
- 负责转发非事务操作到从节点上
- follower 从节点
-
- 负责从主节点拷贝数据到从节点上,保持数据的一致性
- 负责数据的非事务性操作(读)
- 负责将事务请求操作转发给leader
- observer 观察者,不具备投票的权限,主要目的是提升数据的请求并发
zookeeper 五大特性
- 全局数据一致性:各个节点的数据一模一样
- 可靠性:数据只要被一台服务器接受到了,其他服务器必然也接受到了
- 全局有序:在服务器端,保证每条数据都是按照接受的先后顺序进行存储
- 数据更新原子性:数据更新操作,要么成功,要么失败,不存在中间状态
- 实时性:zookeeper保证将在一个时间间隔范围内获取服务器的更新信息,或者服务器失败的信息
zookeeper选举机制
- 核心就是选举谁当老大的问题
- 第一种选举主要出现在集群刚刚搭建好,只会选择那个myid最大的,一旦集群数量过半就产生老大,后续节点的ID即使在大,也只能作为从节点
- 第二种选举方案,属于集群中已经存在数据,在启动的过程中,会优先选择数据最多的那个节点做老大,如果数据都一样,会参考谁的ID大,来做老大,一旦集群数量过半就会产生老大,后续新的节点即使ID再大,也只能做从节点