zookeeper介绍

ZooKeeper是一种用于分布式应用程序的分布式开源协调服务。它公开了一组简单的原语,分布式应用程序可以构建这些原语,以实现更高级别的服务,以实现同步,配置维护以及组和命名。它被设计为易于编程,并使用在熟悉的文件系统目录树结构之后设计的数据模型。它在Java中运行,并且具有Java和C的绑定。

众所周知,协调服务很难做到。他们特别容易出现比赛条件和死锁等错误。ZooKeeper背后的动机是减轻分布式应用程序从头开始实施协调服务的责任

zookeeper_api

ZooKeeper的设计目标之一是提供一个非常简单的编程接口。因此,它仅支持以下操作:

  • create:在树中的某个位置创建一个节点

  • delete:删除节点

  • exists:测试某个位置是否存在节点

  • get data:从节点读取数据

  • set data:将数据写入节点

  • get children:检索节点的子节点列表

  • sync:等待传播数据

zookeeper安装

docker安装zookeeper

docker search zookeeper

docker pull zookeeper #拉取镜像

docker run –privileged=true -d –name zookeeper –publish 2181:2181 -d zookeeper:latest #启动容器并添加映射

zookeeper的扩容与缩容

扩容

集群容错(奇偶数节点问题)

如ZooKeeper入门指南中所述,容错群集设置至少需要三台服务器,强烈建议您使用奇数个服务器。

通常三台服务器对于生产安装来说已经足够了,但为了在维护期间获得最大可靠性,您可能希望安装五台服务器。使用三台服务器时,如果对其中一台服务器执行维护,则在维护期间,您很容易在其他两台服务器上发生故障。如果你有五个正在运行,你可以拿一个进行维护,并且知道如果其他四个中的一个突然失败你仍然可以。

参考:http://blog.itpub.net/31441024/viewspace-2212546/