redis是单实例的,基于内存的kv键值对存储数据的结构。redis在集群模式下,数据不是最终一致性的。zookeer作为分布式应用程序协调服务。
ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务可用于分布式锁,分布式领导选举,配置管理等。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行大量工作来修复不可避免的错误和竞争条件。由于实现这些服务的难度,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。
Zookeeper 提供了一个类似于 Linux 文件系统的树形结构(可认为是轻量级的内存文件系统,但 只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与 通知机制。
zk也是基于内存进行数据存储的,主从架构集群,其所有节点的数据一样。
zk不是数据库,不可用于数据存储,zk是目录结构的,节点可存数据但是小于1M。
1.使用tar xf 命令解压
tar xf zookeeper-3.4.6.tar.gz
进入解压后的conf配置文件目录
cp zoo_sample.cfg zoo.cfg
2.mkdir zk1 zk2 zk3 zk4
3.
cp -r zookeeper-3.4.6 zk1
cp -r zookeeper-3.4.6 zk1
cp -r zookeeper-3.4.6 zk1
cp -r zookeeper-3.4.6 zk1
4.分别修改zoo.cfg
clientPort=2181,2182,2183,2184
dataDir=/var/zk1,zk2,zk3,zk4
# The number of milliseconds of each tick tickTime=2000 心跳时间,服务心跳间隔时间 # The number of ticks that the initial # synchronization phase can take initLimit=10 初始延迟次数 200msX10=20s ,20秒等待时间,超过时间判定为从断开 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5,10秒不回,认为从有问题。 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/var/zk1 目录,myid存日志快照myid version-2 zookeeper_server.pid # the port at which the clients will connect clientPort=2181,客户端连接端口号 # the maximum number of client connections. # increase this if you need to handle more clients maxClientCnxns=60 最大连接客户数 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 集群内的zookeeper server.对应的1,2,3,4对应/var/zk1 的myid数据。 server.1=172.27.199.232:28881:38881 server.2=172.27.199.232:28882:38882 server.3=172.27.199.232:28883:38883 server.4=172.27.199.232:28884:38884
5.mkdir -p /var/zk1,zk2,zk3.zk4
echo 1 > /var/zk1/myid echo 2 > /var/zk2/myid echo 3 > /var/zk3/myid echo 4 > /var/zk4/myid
6.启动服务
start-foreground表示前台启动,命令日志打印前台;status表示状态,查看角色是leader还是Follwer;stop表示停止服务;
zkServer.sh start-foreground /opt/mashibing/zk1/zookeeper-3.4.6/conf/zoo.cfg zkServer.sh start-foreground /opt/mashibing/zk2/zookeeper-3.4.6/conf/zoo.cfg zkServer.sh start-foreground /opt/mashibing/zk3/zookeeper-3.4.6/conf/zoo.cfg zkServer.sh start-foreground /opt/mashibing/zk4/zookeeper-3.4.6/conf/zoo.cfg
7.连接客户端
zkCli.sh -server 172.27.199.232:2181 zkCli.sh -server 172.27.199.232:2182 zkCli.sh -server 172.27.199.232:2183 zkCli.sh -server 172.27.199.232:2184
8.客户端命令
[zk: 172.27.199.232:2184(CONNECTED) 6] ls / 查看目录节点 [ll, abc, zookeeper, succ, xoxo, xxoo, x, z]



