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() . "
");
当你创建一个节点它可能是重要的顶一个ACL,要做到这一点, 传递一个引用到一个ACL array(在 "Access Control" 描述)
使用一个'acl'选项。