java中zookeeper如何使用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍java中zookeeper如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.引入maven依赖 org.apache.zookeeper
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
web前端软件开发价位
内网主机做代理服务器
网络安全大队的职责
魔兽手机数据库
消防网络安全知识竞赛题库
广西应届计算机网络技术工资
海事加强网络安全管理办法
徐州软件开发设计规范
上虞财务软件开发价格
天津网络技术信息采购
网络安全相关新闻
芯片设计还是软件开发
升级数据库技术
网络安全方面的技能
水务行业网络安全防护
服务器内存满了会宕机吗
sql 数据库 用户
服务器环境适应性试验
access数据库dat
互联网科技感宣传册
扫雷 数据库
网络安全防线演练
c 什么软件开发
网络安全四种类型
网络安全你我共筑手抄报
莆田圣帆网络技术有限公司
qq飞车无法登陆服务器
国家网络安全宣传周主持人
神威服务器
哪些公司做软件开发