Zookeeper在分布式系统中扮演什么角色
那么zookeeper在其中又是扮演什么角色呢,如果可以把zk扮演成交警的角色,而各个节点就是马路上的各种汽车(汽车,公交车),为了保证整个交通(系统)的可用性,zookeeper必须知道每一节点的健康状态(公交车是否出了问题,要派新的公交【服务注册与发现】),公路在上下班高峰是否拥堵,在某一条很窄的路上只允许单独一个方向的汽车通过【分布式锁】。
如果交通警察是交通系统的指挥官,而zookeeper就是各个节点组成分布式系统的指挥官。
Zookeeper简介(what)
ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。
设计目标
- 简单的数据结构:共享的树形结构,类似文件系统,存储于内存;
- 可以构建集群:避免单点故障,3-5台机器就可以组成集群,超过半数正常工作就能对外提供服务;
- 顺序访问:对于每个读请求,zk会分配一个全局唯一的递增编号,利用这个特性可以实现高级协调服务;
高性能:基于内存操作,服务于非事务请求,适用于读操作为主的业务场景。3台zk集群能达到13w QPS;
哪些常见需要用到ZK(why)
数据发布订阅
负载均衡
命名服务
Master选举
集群管理
配置管理
分布式队列
分布式锁
为什么要学习zookeeper?(why)
互联网架构师必备技能
高端岗位必考察的知识点
zk面试问题全解析
- Zookeeper是什么框架
- 应用场景
- Paxos算法& Zookeeper使用协议
- 选举算法和流程
- Zookeeper有哪几种节点类型
- Zookeeper对节点的watch监听通知是永久的吗?
- 部署方式?集群中的机器角色都有哪些?集群最少要几台机器
- 集群如果有3台机器,挂掉一台集群还能工作吗?挂掉两台呢?
- 集群支持动态添加机器吗?