import org.apache.zookeeper.CreateMode
import org.apache.zookeeper.Watcher
import org.apache.zookeeper.ZooDefs
import org.apache.zookeeper.ZooKeeper
import org.apache.zookeeper.data.Stat
import org.junit.Test
/**
* @author ning
*/
class Test {
private companion object {
//逗号分隔主机:端口对,每个对应一个ZooKeeper 主机名/IP 与配置文件相同
val CONNECT_STRING: String = "192.168.84.132:2181,192.168.84.133:2181,192.168.84.134:2181"
//会话超时(毫秒)
val SESSION_TIMEOUT: Int = 2000
val zooKeeper: ZooKeeper by lazy {
ZooKeeper(CONNECT_STRING, SESSION_TIMEOUT, Watcher { event -> println("${event?.type}-->${event?.path}") })
}
}
/**
* 测试创建节点
*/
@Test
fun testCreate() {
//路径,内容,权限,创建模式;返回创建节点的实际路径
val createdNode = zooKeeper.create("/a", "aaa".toByteArray(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT)
println(createdNode)
}
/**
* 测试获得子节点
*/
@Test
fun testGetChildren() {
//路径,使用以前定义的Watcher 监听
val mutableList = zooKeeper.getChildren("/", true)
if (mutableList != null) {
for (str in mutableList) {
println(str)
}
}
}
/**
* 测试获得节点数据
*/
@Test
fun testGetData() {
//路径,监听,版本可null
val data = zooKeeper.getData("/test/a", false, Stat())
println(String(data))
}
/**
* 测试删除节点
*/
@Test
fun testDel() {
//路径,-1为删除所有版本
zooKeeper.delete("/a", -1)
}
}
Zookeeper JAVA客户端(Kotlin 实现) CRUD
最新推荐文章于 2024-01-05 10:11:54 发布