Zookeeper(1)

单机模式

tickTime=2000

dataDir=/data

clientPort=2181


集群模式

在单机模式基础上增加几个配置项。

//Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数

initLimit=5

// Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度

syncLimit=2

server.1=

server.2=

server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。


集群模式下还需要配置一个文件myid,在dataDir目录下,内容就是A的值。Zookeeper启动式会读取这个文件,拿里面的数据与zoo.cfg中的配置信息比较判断哪个是server。


数据模型
                                                                                                              图 1 Zookeeper 数据结构

1.znode可以有子节点目录,并且每个znode可以存储数据,EPHEMERAL类型的目录节点不能有子节点目录。
2.znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据。
3.znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除。

4.znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端。


程序
客户端要连接 Zookeeper 服务器可以通过创建 org.apache.zookeeper. ZooKeeper 的一个实例对象,然后调用这个类提供的接口来和服务器交互。

方法:

String   create (String path , byte[]  data, List<ACL> acl , CreateMode createmode)             创建目录节点path,设置数据

createmode :    PERSISITENT                                              持久化目录节点,存储数据不会丢失
                            PERSISTENT_SEQUENTIAL                   顺序自动编号目录节点
                            EPHEMERAL                                              临时目录节点
                            EPHEMERAL_SEQUENTIAL                  临时自动编号节点




当对目录节点监控状态打开时,一旦目录节点的状态发生变化,Watch对象的process方法就会被调用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值