Zookeeper的介绍:
*Zookeeper是一个集群、可靠的中间件,可以使信息没同步完成时就不对外服务,知道同步完可以缩短同步的时间,较好的分布协调能力。分布式协调服务。
*Zookeeper是开源的高性能的分布式应用协调系统,一个高性能的分布式数据一致性的解决方案。
*Zookeeper支持java 依赖jdk
Zookeeper的五大特点:
1.顺序一致性 客户端-服务端
2.原子性 要不同步成功要不就都不成功
3.单一视图 视图一致
4.可靠性
5.即时性
CAP:
C:Consistence一致性
A: Availability 可用性
P: Partition tolerance 分区容错性
Zookeeper明显选择CP: 一致性+分区容错性(根据使用场景、具体业务)
Zookeeper和CAP的关系:
*CP:一致性+分区容错性
*能得到一致的数据结果,同时系统对网络有容错性
*不能保证每次服务请求的可用性
Zookeeper的作用:
*分布式服务注册与订阅
*统一配置文件,配置文件一旦发生变化,就会即时通知各个客户端
*生成分布式唯一ID
*Master节点选举,保证高可用,主节点是唯一的。谁先请求
*分布式锁,保证线程安全。保证互斥访问
其中架构图、集群、工作过程:
leader实现了主从同步
竞争,宕机后其他服务器会竞争