12zookeeper——好程序好程序
zookeeper的基础与架构、集群搭建的基础与架构、集群搭建
zookeeper是什么??是什么??
zookeeper是一个分布式协调服务,就是为用户的分布式应用提供协调服务是一个分布式协调服务,就是为用户的分布式应用提供协调服务
zookeeper是为其他的分布式程序服务的是为其他的分布式程序服务的
zookeeper本身也是一个分布式程序(只要有半数以上节点存活,本身也是一个分布式程序(只要有半数以上节点存活,zk就能正常对外提供服务)一般奇数台就能正常对外提供服务)一般奇数台
zk集群的角色主要有集群的角色主要有2种:种:leader和和follower
选举机制选举机制
zookeeper集群的特性集群的特性
zookeeper集群:一个集群:一个leader,多个,多个follower((zookeeper的老大是选举的,的老大是选举的,hdfs的老大是指定的)的老大是指定的)
全局一致性:每个全局一致性:每个server保存一份相同的数据副本。保存一份相同的数据副本。client连接那个连接那个server,数据都是一致的,数据都是一致的
分布式读写:更新、请求、转发,由分布式读写:更新、请求、转发,由leader实施(请求到实施(请求到follow的写操作都是转发给的写操作都是转发给leader进行操作。读则没有关系)进行操作。读则没有关系)
更新请求顺序执行,来自同一个更新请求顺序执行,来自同一个client的更新请求按照其发送顺序依次执行的更新请求按照其发送顺序依次执行
数据更新原子性:一次数据更新操作要么成功,要么失败数据更新原子性:一次数据更新操作要么成功,要么失败
实时性:在一定时间范围内,实时性:在一定时间范围内,client能读取到最新的数据能读取到最新的数据
选举机制:选举机制:
全新集群:(全新集群:(id大的为大的为leader))
1、启动第、启动第1台,选我,处于观望台,选我,处于观望
2、第、第2台启动,选我。各台启动,选我。各1票,重新选,票,重新选,2得得2票,票,2为为leader
运行中的集群:运行中的集群:
选举标准:数据版本、逻辑时钟、选举标准:数据版本、逻辑时钟、id大的大的
1、逻辑时钟小的选举结果被忽略,重新选举、逻辑时钟小的选举结果被忽略,重新选举
2、统一逻辑时钟后,、统一逻辑时钟后,id大的为大的为leader
3、数据、数据Id相同的情况下,相同的情况下,id大的胜出大的胜出
1、如果前端有请求过来,后端服务器那么多,前端到底应该调用那台服务器呢?
2、那么整一个服务列表不就可以了嘛,来一个分配一个,当随着服务群体不断增多,则需要增加很多服务器,那么增加的服务器,前端不一定知道呀,因为前端与后端分属于不同
管理,同时如何将服务器放入待调度的队列中呢?
3、还有如果运行过程中某台宕机了呢,前端在一直分配,则一直就没有响应,访问就一直积压中,分了也白分
因为以上三点,就需要一个实时监控协调的功能,
a、挂了就自动判断是否挂了就不分配任务,
b、若节点上来了就加进到待分配列表中自动分配。
c、请求者需要动态感知服务层服务器的负载,上下线等动态信息。