当前位置: 首页 > wzjs >正文

免费制作网站服务器郑州网站制作方案

免费制作网站服务器,郑州网站制作方案,高端品牌女装,影视制作传媒公司文章目录 zookeeper 的安装Curator 介绍Curator API 常用操作本章必要的相关依赖和配置建立连接第一种方式第二种方式 关闭连接添加节点创建节点创建节点并设置值和类型创建多级节点 查询节点查询数据查询所有子节点查询节点信息 修改节点修改节点(乐观锁修改,根据版…

文章目录

  • zookeeper 的安装
  • Curator 介绍
  • Curator API 常用操作
  • 本章必要的相关依赖和配置
  • 建立连接
    • 第一种方式
    • 第二种方式
  • 关闭连接
  • 添加节点
    • 创建节点
    • 创建节点并设置值和类型
    • 创建多级节点
  • 查询节点
    • 查询数据
    • 查询所有子节点
    • 查询节点信息
  • 修改节点
    • 修改节点(乐观锁修改,根据版本号)
  • 删除节点
    • 删除节点
    • 删除带有子节点的节点
    • 必须删除成功
    • 删除后回调

本章代码已分享至Gitee: https://gitee.com/lengcz/curator01

zookeeper 的安装

关于zookeeper的安装请见: dubbo(2):zookeeper和dubbo-admin的安装

Curator 介绍

Curator 是Apache Zookeeper 的java 客户端库
常见的Zookeeper Java API

  • 原生Java API
  • ZkClient
  • Curator

Curator 项目的目标是简化Zookeeper 客户端的使用。
Curator 最初是Netfix 研发的,后来捐献给了Apache基金会,目前属于 Apache顶级项目。
Curator 官网: https://curator.apache.org/

Curator API 常用操作

  • 建立连接
  • 添加节点
  • 删除节点
  • 修改节点
  • 查询节点
  • Watch事件监听
  • 分布式锁实现

本章必要的相关依赖和配置

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.0.0</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.21</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.21</version></dependency><!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.57</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>

建立连接

第一种方式

        //1 第一种方式/** String connectString, 连接字符串 zk server 地址和端口 ip1:port1,ip2:port2....*  int sessionTimeoutMs, 会话超时时间  单位ms* int connectionTimeoutMs,  连接超时时间,单位ms*  RetryPolicy retryPolicy  重拾策略*/RetryPolicy retryPolicy = new ExponentialBackoffRetry(3000, 10);String connectString = "localhost:2181";CuratorFramework client =CuratorFrameworkFactory.newClient(connectString, 60_000, 15_000, retryPolicy);client.start();

第二种方式

//2 第二种方式,链式编程CuratorFramework client2 = CuratorFrameworkFactory.builder().connectString(connectString).sessionTimeoutMs(60_000).connectionTimeoutMs(15_000).retryPolicy(retryPolicy).namespace("demo01").build();client2.start();

namespace表示根节点,表示这个客户端的操作都在这个节点之下,后续使用中不需要从根开始声明。

  • 节点不需要手动创建,连接是会自动创建

关闭连接

 client.close();

添加节点

创建节点

@Testpublic void testCreate() throws Exception {//如果创建节点,没有指定数据,则默认将当前客户端的ip作为数据存储String path = client.create().forPath("/app1");logger.info(path);}

在这里插入图片描述

创建节点并设置值和类型

 @Testpublic void testCreate() throws Exception {//如果创建节点,没有指定数据,则默认将当前客户端的ip作为数据存储
//        String path = client.create().forPath("/app1");
//        logger.info(path);// withMode 指定节点类型,是临时的,还是临时的,顺序的String path2 = client.create().withMode(CreateMode.EPHEMERAL).forPath("/app3","hello world".getBytes()); //创建节点并设置值logger.info(path2);}

withMode :模式。EPHEMERAL 临时的,当会话关闭时,节点会被删除。

创建多级节点

  // creatingParentContainersIfNeeded 如果节点不存在则创建String path3 = client.create().creatingParentContainersIfNeeded().forPath("/app4/p1"); //创建多级节点logger.info(path3);
  • creatingParentContainersIfNeeded 如果节点不存在则创建

查询节点

查询数据

  byte[] bytes = client.getData().forPath("/app1");logger.info(new String(bytes));

查询所有子节点

//获取子节点List<String> paths = client.getChildren().forPath("/app4");paths.forEach(c ->logger.info(c));List<String> paths2 = client.getChildren().forPath("/");//查询根节点

查询节点信息

@Testpublic void testGetNodeInfo() throws Exception {//  查询节点状态信息 ls -sStat status = new Stat();client.getData().storingStatIn(status).forPath("/app1");logger.info(JSONObject.toJSONString(status));}

在这里插入图片描述

修改节点

  @Testpublic void testSet() throws Exception {// 修改数据client.setData().forPath("/app1","hello".getBytes());}

在这里插入图片描述

修改节点(乐观锁修改,根据版本号)

 @Testpublic void testSetForVersion() throws Exception {Stat status = new Stat();client.getData().storingStatIn(status).forPath("/app1");int version = status.getVersion();//查询版本logger.info("版本号:"+version);// 修改数据,如果版本不一致,则不修改数据,乐观锁模式client.setData().withVersion(version).forPath("/app1","hello".getBytes());}

图片表示版本号
在这里插入图片描述

删除节点

删除节点

  /*** 1 删除节点 delete* 2 删除节点带有子节点的节点 deleteall* 3 必须成功的删除* 4 回调* @throws Exception*/@Testpublic void testDelete() throws Exception {// 删除节点dclient.delete().forPath("/app1");}

删除带有子节点的节点

  @Testpublic void testDelete2() throws Exception {// 删除节点带有子节点的节点client.delete().deletingChildrenIfNeeded().forPath("/app4");}

必须删除成功

 @Testpublic void testDelete3() throws Exception {// 必须删除成功client.delete().guaranteed().forPath("/app4");}

必须成功就是重试,防止网络抖动

删除后回调

 @Testpublic void testCallback() throws Exception{// 回调client.delete().guaranteed().inBackground(new BackgroundCallback() {@Overridepublic void processResult(CuratorFramework curatorFramework, CuratorEvent curatorEvent) throws Exception {logger.info("删除后的消息回调");}}).forPath("/app4");}

在这里插入图片描述

http://www.dtcms.com/wzjs/786692.html

相关文章:

  • 公司网站开通一级a做爰片免网站
  • 网站背景php网站美化
  • 怎么把淘宝店放到自己做的网站去祁阳县住房和城乡规划建设局网站
  • 义乌建设公司网站公司网站制作天强科技
  • 公司门户网站什么意思深圳网站优化方式
  • 上海专业网站建设渠道国美电器如何进行网站的建设与维护
  • 设计logo网站哪个好泉州专业网站建设公司哪家好
  • 国外html5模板网站wordpress 4.7.11搬家
  • 贵阳市做网站公司阿里云nas做网站
  • 网站做子页面怎么做关键词难易度分析
  • 网站文章的作用网站文字排版
  • 做网站时怎么添加动态信息全国工程信息平台官网
  • 外国人在中国做视频网站湖南衡阳网站建设
  • iis7建网站网站推广优化外包公司哪家好
  • 益阳网站建设网站好看的网站的导航怎么做
  • 不花钱网站怎么做网站建设公司的公司
  • wordpress自适应站点网站建设公司如何约客户
  • 敬请期待换个说法网站seoapp
  • 网站开发使用哪些开发语言wordpress统计在线人数
  • 网站建设及运营 多少钱淘宝客是以下哪个网站的会员简称
  • 深圳手机商城网站设计公司理财公司网站模板下载
  • 新手如何学网站建设智慧团建电脑版登录
  • 前端静态网站模板产品经理做网站
  • 做公司网站教程视频纯净系统基地
  • 河南公司网站可以做天津备案吗wordpress企业建站教程
  • 河南周口东宇网站建设中国建设网建设通
  • 深圳龙华汽车站附近有做网站建设的网站正在建设中源码
  • 网站推广排名报价网站内容的重要性
  • iis如何设置服务器上网站空间大小wordpress cdn 阿里云
  • 有了域名 怎么做网站自己架设的传奇怎么做网站