ZooKeeper入门指南(初次体验)
下载最新稳定版本
点击我去下载页
单机运行
进入到zookeeper目录
vi conf/zoo.cfg
写入配置参数
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
参数说明
tickTime:ZooKeeper使用的基本时间单位(毫秒)。它用于做心跳,最小会话超时将是tickTime的两倍。
dataDir:存储内存数据库快照的位置,除非另有说明,否则存储数据库更新的事务日志。
clientPort:用于侦听客户端连接的端口
创建配置文件后,就可以启动ZooKeeper:
bin/zkServer.sh start
连接ZooKeeper
bin/zkCli.sh -server 127.0.0.1:2181
常用命令
help
获取命令列表,帮助信息
ls
获取节点列表 使用需要带上路径 如 ls /
create /node data
创建节点 create /zk_test 或者 create /zk_test orange
get /node
获取节点信息 get /zk_test
set /zk_test 520code
更改节点的数据
delete /zk_test
删除节点
运行复制的ZooKeeper(集群部署)
新建配置文件 vi conf/zoo.cfg
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
initLimit 是超时ZooKeeper用于限制仲裁中的ZooKeeper服务器必须连接到领导者的时间长度。
syncLimit 限制服务器与领导者之间过时的时间。
对于这两个超时,您都可以使用tickTime指定时间单位。在此示例中,initLimit的超时是5个滴答声,即2000毫秒/滴答声,即10秒。
server.X 列出了组成ZooKeeper服务的服务器。服务器启动时,可以通过在数据目录中查找文件myid来知道服务器所在的服务器。该文件包含ASCII的服务器号。
最后,记下每个服务器名称后的两个端口号:“ 2888”和“ 3888”。对等方使用前一个端口连接到其他对等方。这种连接是必需的,以便对等方可以进行通信,例如,以商定更新顺序。更具体地说,ZooKeeper服务器使用此端口将关注者连接到领导者。当出现新的领导者时,跟随者使用此端口打开与领导者的TCP连接。因为默认的领导者选举也使用TCP,所以我们当前需要另一个端口来进行领导者选举。这是服务器条目中的第二个端口。
注意
如果要在单台计算机上测试多个服务器,请为每个服务器指定服务器名称为localhost,具有唯一的仲裁和领导者选择端口(即,在上面的示例中为2888:3888、2889:3889、2890:3890)。配置文件。当然,也需要单独的_dataDir_s和不同的_clientPort_s(在上面的复制示例中,在单个localhost上运行,您仍然会有三个配置文件)。
请注意,在一台计算机上设置多个服务器不会产生任何冗余。如果发生某些事情导致机器死机,则所有zookeeper服务器都将处于脱机状态。完全冗余要求每个服务器都有自己的计算机。它必须是完全独立的物理服务器。同一物理主机上的多个虚拟机仍然容易受到该主机完全故障的影响。
如果ZooKeeper机器中有多个网络接口,还可以指示ZooKeeper绑定所有接口,并在网络出现故障时自动切换到正常接口。有关详细信息,请参阅“ 配置参数”。