单机模式:
让Zookeeper处于单机运行模式是非常简单的。服务端包含在了一个jar里面,安装Zookeeper只需配置一个文件,这个文件就是conf/zoo.cfg。这里有个简单的例子,
tickTime=2000 dataDir=/var/lib/zookeeper clientPort=2181
下面来解释这些配置项的含义:
tickTime:Zookeeper配置的基础时间单元,单位(ms)。它将用于心跳或者session过期时间的基础时间单元。
dataDir:内存数据库快照的存储地址,除非明确指定,这些事务日志将会被存储到数据库。
clientPort:客户端连接Zookeeper的端口。
连接到Zookeeper
一旦zookeeper已经启动,你就可以连接它。
Java环境下 你可以用如下方式连接:
bin/zkCli.sh -server 127.0.0.1:2181
连接后会出现如下相似的界面
Connecting to localhost:2181 log4j:WARN No appenders could be found for logger (org.apache.zookeeper.ZooKeeper). log4j:WARN Please initialize the log4j system properly. Welcome to ZooKeeper! JLine support is enabled [zkshell: 0]
输入ls / 可以查看zookeeper下所有的znode。默认情况下只有一个 [zookeeper]。
1:创建znode: create /node1 mydata
上述语句将会在/下创建一个node1的节点,节点包含的数据是mydata。
2:查看某个znode:get /node1
my_data cZxid = 5 ctime = Fri Jun 05 13:57:06 PDT 2009 mZxid = 5 mtime = Fri Jun 05 13:57:06 PDT 2009 pZxid = 5 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0 dataLength = 7 numChildren = 0
3:改变节点的数据
set /node1 xxxx
4:删除节点
delete /node1
zookeeper复制集配置
单机运行模式适用于评估,开发和测试,在实际产品中应该使用zookeeper的复制集模式。
一个复制集的多态服务器被称作一个quorum,在一个复制集中,每个服务器的配置文件,即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中服务器连接leader所需要消耗的超时时间。
syncLimit:服务器和leader通信同步的超时时间。