何为分布式协调服务
-
单机系统因处理能力上限,可用性,可靠性的考虑,变成分布式系统。 原来在单机进程中完成的一件事的多个步骤,变为在多个计算机中完成,这时就需要协调各个计算节点做事的顺序;原来在单系统中资源竞争通过锁进行同 步控制;现在变成了多个计算机上的进程间的资源竞,也需要分布式协调。
-
我们可以把每个分布式系统中需要的协调管理的公共基础部分抽取出来作为一个基础公共服务供大家使用,这就是分布式协调服务
zookeeper使用案例
- Hbase 使用zookeeper进行Master选举,服务间协调。
- Solr:使用zookeeper进行集群管理、Leader选举,配置管理。
- Dobbo:服务注册。
- MyCat:集群管理,配置管理
- Sharding-sphere:集群管理,配置管理
zookeeper同类产品
consul etcd Doozer
什么是ZooKeeper
- 简介:是一种用于分布式应用程序的高性能协调服务,提供一种集中式信息存储服务。
- 特点:数据存在内存中,类似文件系统的树形结构(文件和目录)高吞吐量和低延迟。集群高可靠。
- 作用:基于zookeeper可以实现分布式统一配置中心,服务注册中心,分布式锁等功能。

第三方客户端
1、zkClient 2、Curator
核心概念(session会话)

- 一个客户端连接一个会话,由zk分配唯一的会话id
- 客户端以特定的时间间隔发送心跳以保持会话有效;tickTime
- 超过会话超时时间未收到客户端的心跳,则判断客户端死了;(默认2倍的tickTime)
- 会话中的请求按FIFO的顺序执行。
核心概念(数据模型)
(提供一个集中式的数据存储服务,存储在协调过程中要用到的协调数据)
层次名称空间
- 类似Unix文件系统,以(/)为根
- 区别:节点可以包含与之关联的数据以及子节点(既是文件也是文件夹)
- 节点的路径总是表示为规范的、绝对的、斜杆分离的路径
znode(节点)
- 名称唯一,命名规范
- 节点类型:持久、顺序、临时、临时顺序
- 节点数据构成
- 命名规范:null字符, zookeeper保留名, 不可见Unicode