[−][src]Struct buruma::ZooKeeper
整个模块的 API 入口对象
Implementations
impl ZooKeeper
[src]
pub async fn new(
connect_string: &str,
session_timeout: Duration
) -> ZKResult<ZooKeeper>
[src]
connect_string: &str,
session_timeout: Duration
) -> ZKResult<ZooKeeper>
创建 ZooKeeper 客户端
Examples
ⓘ
let mut zk = ZooKeeper::new("127.0.0.1:2181", Duration::from_secs(5)).await.unwrap();
Args
connect_string
: 连接字符串格式为 "ip1:port1,ip2:port2,ip3:port3.../chroot",其中 chroot 为可选session_timeout
: 会话超时时间, 参考Duration
Returns
ZooKeeper
:ZooKeeper 客户端对象
Errors
无法连接服务端或者连接字符串格式有问题将会返回异常
pub async fn create(
&mut self,
path: &str,
data: Option<&[u8]>,
acl_list: Vec<ACL>,
create_model: CreateMode
) -> ZKResult<String>
[src]
&mut self,
path: &str,
data: Option<&[u8]>,
acl_list: Vec<ACL>,
create_model: CreateMode
) -> ZKResult<String>
创建目标路径的节点,数据是可选的
Examples
ⓘ
// 创建一个没有数据的节点 let path = zk.create("/a/new/path", None, ACL::world_acl(), CreateMode::Persistent) .await .unwrap(); // 创建一个带数据的节点 let path = zk.create("/your/path", Some("buruma".as_bytes()), ACL::world_acl(), CreateMode::Persistent) .await .unwrap();
Args
path
: 目标路径,必须以 "/" 开头data
: 节点的数据,可选acl
: 该节点的权限数据,可以有多个,参考ACL
create_model
: 节点的模式,参考CreateMode
Returns
String
:目标路径,同参数path
pub async fn delete(&mut self, path: &str) -> ZKResult<()>
[src]
pub async fn deletev(&mut self, path: &str, version: i32) -> ZKResult<()>
[src]
删除目标路径的节点数据携带版本条件,满足版本号才能删除
Examples
ⓘ
zk.deletev("/your/path", 1024).await;
Args
path
: 目标路径,必须以 "/" 开头version
: 节点指定的版本号,-1 为忽略版本
pub async fn set(&mut self, path: &str, data: &[u8]) -> ZKResult<Stat>
[src]
为目标路径设置数据
Examples
ⓘ
let stat = zk.set("/your/path", "Chinese Stand Up".as_bytes()).await?;
Args
path
: 目标路径,必须以 "/" 开头data
: 节点数据
Returns
Stat
: 统计对象,请查看Stat
pub async fn setv(
&mut self,
path: &str,
data: &[u8],
version: i32
) -> ZKResult<Stat>
[src]
&mut self,
path: &str,
data: &[u8],
version: i32
) -> ZKResult<Stat>
为目标路径设置数据,携带版本条件,满足版本号才能设置成功
Examples
ⓘ
let stat = zk.setv("/your/path", "Chinese Stand Up".as_bytes(), 19491001).await?;
Args
path
: 目标路径,必须以 "/" 开头data
: 节点数据version
: 节点指定的版本号,-1 为忽略版本
Returns
Stat
: 统计对象,请查看Stat
pub async fn get(
&mut self,
path: &str,
stat: Option<&mut Stat>
) -> ZKResult<Vec<u8>>
[src]
&mut self,
path: &str,
stat: Option<&mut Stat>
) -> ZKResult<Vec<u8>>
获取目标路径数据,不需要回调
Examples
ⓘ
let data = zk.get("/your/path", None).await?;
Args
path
: 目标路径,必须以 "/" 开头stat
: 统计数据,可选,如果不为 None 则会将节点统计结果写入该对象, 关于更多统计对象,请查看Stat
Returns
Vec<u8>
: 目标节点的数据以字节数组的形式
pub async fn getw(
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>,
stat: Option<&mut Stat>
) -> ZKResult<Vec<u8>>
[src]
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>,
stat: Option<&mut Stat>
) -> ZKResult<Vec<u8>>
获取目标路径数据,需要回调通知
Examples
ⓘ
let data = zk.getw("/your/path", Some(YourWatcherImpl), None).await?;
Args
path
: 目标路径,必须以 "/" 开头watcher
: 回调对象,必须实现Watcher
trait,可选stat
: 统计数据,可选,如果不为 None 则会将结果写入该对象, 关于更多统计对象,请查看Stat
Returns
Vec<u8>
: 目标节点的数据以字节数组的形式
pub async fn exists(&mut self, path: &str) -> ZKResult<Option<Stat>>
[src]
判断目标路径是否存在,不需要回调
Examples
ⓘ
let stat = zk.exists("/your/path").await?;
Args
path
: 目标路径,必须以 "/" 开头
Returns
Stat
: 统计对象,请查看Stat
pub async fn existsw(
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>
) -> ZKResult<Option<Stat>>
[src]
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>
) -> ZKResult<Option<Stat>>
判断目标路径是否存在,需要回调通知
Examples
ⓘ
let stat = zk.existsw("/your/path", Some(YourWatcherImpl), None).await?;
Args
path
: 目标路径,必须以 "/" 开头watcher
: 回调对象,必须实现Watcher
trait,可选
Returns
Stat
: 统计对象,请查看Stat
pub async fn children(&mut self, path: &str) -> ZKResult<Vec<String>>
[src]
获取节点的子节点列表,不需要回调
Examples
ⓘ
let children_list = zk.children("/your/path").await?;
Args
path
: 目标路径,必须以 "/" 开头
Returns
Vec<String>
: 子节点列表
pub async fn childrenw(
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>
) -> ZKResult<Vec<String>>
[src]
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>
) -> ZKResult<Vec<String>>
获取节点的子节点列表,需要回调通知
Examples
ⓘ
let stat = zk.childrenw("/your/path", Some(YourWatcherImpl), None).await?;
Args
path
: 目标路径,必须以 "/" 开头watcher
: 回调对象,必须实现Watcher
trait,可选
Returns
Vec<String>
: 子节点列表
pub async fn childrens(
&mut self,
path: &str,
stat: &mut Stat
) -> ZKResult<Vec<String>>
[src]
&mut self,
path: &str,
stat: &mut Stat
) -> ZKResult<Vec<String>>
获取节点的子节点列表,不需要回调,可以写入 stat
Examples
ⓘ
let stat = Stat::default(); let children_list = zk.childrens("/your/path", stat).await?;
Args
path
: 目标路径,必须以 "/" 开头stat
: 统计数据,统计结果会写入该对象, 关于更多统计对象,请查看Stat
Returns
Vec<String>
: 子节点列表
pub async fn childrensw(
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>,
stat: &mut Stat
) -> ZKResult<Vec<String>>
[src]
&mut self,
path: &str,
watcher: Option<impl Watcher + 'static>,
stat: &mut Stat
) -> ZKResult<Vec<String>>
获取节点的子节点列表,需要回调通知,可以写入 stat
Examples
ⓘ
let stat = Stat::default(); let children_list = zk.childrensw("/your/path", Some(YourWatcherImpl), stat).await?;
Args
Returns
Vec<String>
: 子节点列表
pub async fn children_count(&mut self, path: &str) -> ZKResult<u32>
[src]
获取目标路径下的所有子节点数量(包括孙子节点)
Examples
ⓘ
let total_number = zk.children_count("/your/path").await?;
Args
path
: 目标路径,必须以 "/" 开头
Returns
u32
: 目标路径下的所有子节点数量
pub async fn get_ephemerals(&mut self, path: &str) -> ZKResult<Vec<String>>
[src]
获取目标路径前缀下的所有临时节点(包括孙子节点)
Examples
ⓘ
let path_list = zk.get_ephemerals("/your/path").await?;
Args
path
: 目标路径,必须以 "/" 开头,不会拼接 chroot
Returns
Vec<String>
: 所有符合条件临时节点的列表
pub async fn get_acl(
&mut self,
path: &str,
stat: Option<&mut Stat>
) -> ZKResult<Vec<ACL>>
[src]
&mut self,
path: &str,
stat: Option<&mut Stat>
) -> ZKResult<Vec<ACL>>
获取目标路径的权限信息
Examples
ⓘ
let acl_list = zk.get_acl("/your/path", None).await?;
Args
path
: 目标路径,必须以 "/" 开头stat
: 统计数据,可选,如果不为 None 则会将结果写入该对象, 关于更多统计对象,请查看Stat
Returns
Vec<ACL>
: 节点的 ACL 列表
pub async fn set_acl(
&mut self,
path: &str,
acl_list: Vec<ACL>,
version: i32
) -> ZKResult<Stat>
[src]
&mut self,
path: &str,
acl_list: Vec<ACL>,
version: i32
) -> ZKResult<Stat>
设置目标路径的权限信息
Examples
ⓘ
let acl_list = zk.get_acl("/your/path", None).await?;
Args
path
: 目标路径,必须以 "/" 开头acl_list
: 该节点的权限数据,可以有多个,参考ACL
Returns
Stat
: 统计对象,请查看Stat
pub async fn add_watch<W: Watcher + 'static>(
&mut self,
path: &str,
watcher: W,
mode: AddWatchMode
) -> ZKResult<()>
[src]
&mut self,
path: &str,
watcher: W,
mode: AddWatchMode
) -> ZKResult<()>
为目标路径添加回调通知
Examples
ⓘ
zk.add_watch("/your/path", YourWatcherImpl, AddWatchMode::Persistent).await?;
Args
path
: 目标路径,必须以 "/" 开头watcher
: 回调对象,必须实现Watcher
traitmode
: 添加回调的种类,请查看AddWatchMode
pub fn state(&self) -> ZKResult<States>
[src]
pub fn session_id(&self) -> ZKResult<i64>
[src]
pub fn session_timeout(&self) -> ZKResult<u32>
[src]
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for ZooKeeper
[src]
impl Send for ZooKeeper
[src]
impl Sync for ZooKeeper
[src]
impl Unpin for ZooKeeper
[src]
impl !UnwindSafe for ZooKeeper
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,