java中zookeeper如何使用
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍java中zookeeper如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.引入maven依赖 org.apache.zookeeper
千家信息网最后更新 2025年01月31日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
而不是expression
auth 不需要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安全错误
数据库的锁怎样保障安全
阻止ip访问服务器
数据库系统工程师学习视频
上海服务器防火墙设备
党员网络安全清理整治
国家支持什么网络安全行业
软件安装找不到服务器什么意思
光明区网络技术进出口联系方式
管理世界数据库
北京丛林网络技术有限公司
文件服务器共享会自动关闭
泸州天南网络技术有限公司
服务器网络负载的
四则运算软件开发
易祥软件开发
高青模具软件开发服务
国际服务器domcer
关于网络安全的内容50字
盐城移动网络技术专家王朝阳
深圳微店网络技术有限公司
青浦区技术软件开发中心收费
中山电脑软件开发多少钱
恒一互联网科技有限公司
关于网络安全的作文五篇
网络安全认知实习体会
proxy 代理服务器
宾馆没有制定网络安全制度行吗
地图数据库专题地图
前置服务器的作用
博弈网络技术追回是真的么
互联网科技新能源