zk create() 方法

create()
$path = $zkh->create($req_path, $data);
$path = $zkh->create($req_path, $data,
                     'flags' => (ZOO_EPHEMERAL | ZOO_SEQUENCE),
                     'acl' => ZOO_OPEN_ACL_UNSAFE,
                     'path_read_len' => 100);
					 
请求一个节点被创建在ZooKeeper cluster的层级使用给定的path和数据,一旦成功,返回节点的路径,否则undef


path返回同一个成功的create()方法可能不是新节点的完整路径 ,

依赖实际路径的长度和handle object的path_read_len attribute的值

如果 实际路径的值 超过了path_read_len 属性的值,路径返回通过create()方法会被截断,

注意 节点的path 在e ZooKeeper hierarchy 是不受截断的影响


指定一个 值用于 'path_read_len' 选项会临时覆盖  path_read_len  属性的值对于create()方法期间

flag 值可用的对于使用'flags'选项是ZOO_EPHEMERAL and ZOO_SEQUENCE;

两者都包含在 :flags tagset.


ZOO_EPHEMERAL flag 导致节点被标记为临时节点, 意味着它会自动的删除 如果 客户端的会话结束。

ZOO_SEQUENCE flag 会导致一个唯一的整型被应用到节点的最终路径组成。


use Net::ZooKeeper qw(:node_flags :acls);
 
my $zkh = Net::ZooKeeper->new('localhost:7000');
 
$zkh->create('/foo', 'bar',
             'flags' => ZOO_EPHEMERAL,
             'acl' => ZOO_OPEN_ACL_UNSAFE) or
  die("unable to create node /foo: " . $zkh->get_error() . "\n");
 
 
当你创建一个节点它可能是重要的顶一个ACL,要做到这一点, 传递一个引用到一个ACL array(在 "Access Control" 描述)

使用一个'acl'选项。

posted @ 2016-07-19 16:13  czcb  阅读(431)  评论(0编辑  收藏  举报