Zookeeper数据模型
zookeeper采用层次化的目录结构,命名符合常规文件系统规范;
每个目录在zookeeper中叫做znode,并且其有一个唯一的路径标识;
Znode可以包含数据和子znode(ephemeral类型的节点不能有子znode);
Znode中的数据可以有多个版本,比如某一个znode下存有多个数据版本,那么查询这个路径下的数据需带上版本;
客户端应用可以在znode上设置监视器(Watcher)
znode不支持部分读写,而是一次性完整读写
Znode有两种类型,短暂的(ephemeral)和持久的(persistent);
Znode的类型在创建时确定并且之后不能再修改;
ephemeralzn ode的客户端会话结束时,zookeeper会将该ephemeral znode删除,ephemeralzn ode不可以有子节点;
persistent znode不依赖于客户端会话,只有当客户端明确要删除该persistent znode时才会被删除;
Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、PHEMERAL_SEQUENTIAL。
使用:
在Zookeeper中配置自己的properties文件信息,在项目的spring配置文件中,使用
<config:profile connect-str=“zk.address” root-node=“zk.root.node” version=“zk.configs.version”/>
标签来加载Zookeeper的地址,通过指定zk的地址,节点名,版本号来获取zk的信息
通过
config:placeholder
<config:group node=“skin_dubbo”/>
<config:group node=“skin_redis”/>
<config:group node=“httpclient”/>
<config:group node=“file”/>
</config:placeholder>
来加载zk中的properties文件,skin_dubbo/skin_redis等就是properties文件名
这样之后,就可以通过${}占位符的形式来注入properties文件中的参数值。