java中zookeeper如何使用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍java中zookeeper如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.引入maven依赖 org.apache.zookeeper
千家信息网最后更新 2026年11月02日java中zookeeper如何使用
这篇文章给大家介绍java中zookeeper如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1.引入maven依赖
org.apache.zookeeper zookeeper 3.4.6
2.ZooKeeper节点操作
ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2181", 4000, null);//连接zookeeper服务zooKeeper.create("/test", "20190725", ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);//创建名称是test的节点zooKeeper.setData("/test", "20190726", -1);//更新节点的数据zooKeeper.delete("/test", -1);//删除节点Stat stat = zooKeeper.exists(path, false);//查看节点是否存在zooKeeper.getData("/test", false, stat);//获取节点数据
3.为ZooKeeper节点增加授权访问
world:创建节点的默认权限,有唯一的id是anyone授权的时候的模式为
world:anyone:rwadc表示所有人都对这个节点有rwadc的权限。这里用的是id而不是expressionauth 不需要id。不过这里应该用
expression来表示。即(scheme:expression:perm)digest 使用
用户名:密码编码成md5的方式来作为访问控制列表的id。但是这里id不作为授权语句的一部分,这里也是用expression的方式。用户名: 密码先进行sha1编码后再用base64编码host 使用用户主机名作为访问控制列表的id。但是这里需要注意的是表达式用的是主机名的后缀即可
ip 跟主机名类似,这里用客户端的ip地址作为访问控制列表的id。表达式可以用
addr/bits这种方式来设置ip白名单。
3.1 digest模式
Id id = new Id("digest", DigestAuthenticationProvider.generateDigest("zookeeper:123456"));ACL acl = new ACL();acl.setPerms(Perms.ALL);acl.setId(id);zooKeeper.setACL("/test", Lists.newArrayList(acl), -1);3.2 ip模式
Id id = new Id("ip", "198.16.1.25");//支持ip段,如:198.16.1.25/16ACL acl = new ACL();acl.setPerms(Perms.ALL);acl.setId(id);zooKeeper.setACL(path, Lists.newArrayList(acl), -1);3.3 host模式
Id id = new Id("host", "baidu.com");ACL acl = new ACL();acl.setPerms(Perms.ALL);acl.setId(id);zooKeeper.setACL(path, Lists.newArrayList(acl), -1);4.watcher
当zookeeper节点发生变化时,执行监听事件
public class ZkWatcher implements Watcher { private static Logger logger = LoggerFactory.getLogger(ZkWatcher.class); @Override public void process(WatchedEvent watchedEvent) { if (watchedEvent.getType() == EventType.NodeDeleted) { logger.info("删除节点" + watchedEvent.getPath()); } if (watchedEvent.getType() == EventType.NodeCreated) { logger.info("创建节点" + watchedEvent.getPath()); } if (watchedEvent.getType() == EventType.NodeDataChanged) { logger.info("更新节点" + watchedEvent.getPath()); } if (watchedEvent.getType() == EventType.NodeChildrenChanged) { logger.info("子节点发生变化" + watchedEvent.getPath()); } }}第一种方式:zookeeper.register(new ZkWatcher());第二种方式:ZooKeeper zk = new ZooKeeper("127.0.0.1:2181", 4000, new ZkWatcher());关于java中zookeeper如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
节点
方式
模式
主机
用户
编码
控制
内容
密码
数据
更多
权限
用户名
表达式
变化
帮助
更新
不错
不作为
事件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖南永感互联网科技有限公司
科技互联网企业
广州百单互联网科技有限公司
互联网科技会
新华互联网科技学院
金融科技 互联网金融
贷财互联网科技
赫美联合互联网科技
人人互联网科技是培训
美国互联网前沿科技
互联网科技类展会
卫星互联网科技股票
中盈科技互联网信息有限公司
现代互联网科技股
玉溪互联网科技怎么选
华夏恒生互联网科技013171
宇信科技在杭州互联网排第几
萌小萌互联网科技河南有限公司
东风日产互联网科技公司叫什么
互联网的黑科技实验室
互联网科技与金融科技
苏州互联网科技贷款公司
猫创互联网科技
深圳期待互联网科技
上海电发互联网科技有限公司
华服互联网科技官网
互联网大会黑科技排名
辽宁互联网新科技
工业互联网科技创业
银川新华互联网科技学校是国营吗