Zookeeper入门

ZooKeeper使用入门 ZooKeeper简介 ZooKeeper是一个分布式的,开源的分布式应用程序协调服务,是Hadoop的子项目之一。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 安装ZooKeeper 操作系统要求 操作系统 客户端 服务端 原生客户端 附加组件 GNU/Linux 开发/生产 开发/生产 开发/生产 开发/生产 Solaris 开发/生产 开发/生产 不支持 不支持 FreeBSD 开发/生产 开发/生产 不支持 不支持 阅读详情

摘要: zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,由于产品升级拓展,pom等文件配置越来越复杂,因此zk派上用场
一.zookeeper简介

一款管理分布式应用程序的协调服务系统

二.zookeeper应用场景

网上也有很多介绍,可以参见    http://blog.youkuaiyun.com/xinguan1267/article/details/38422149

本文主要介绍基于java的客户端开发

三.基于JAVA客户端实战

3.1Client

// 创建一个与服务器的连接 需要(服务端的 ip+端口号)(session过期时间)(Watcher监听注册)
ZooKeeper zk = new ZooKeeper(“10.154.156.180:2181”,
3000, new Watcher() {
// 监控所有被触发的事件
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
System.out.println(“已经触发了” + event.getType() + “事件!”);
}
});

     // 创建一个目录节点
     /**
      * CreateMode:
      *     PERSISTENT (持续的,相对于EPHEMERAL,不会随着client的断开而消失)
      *     PERSISTENT_SEQUENTIAL(持久的且带顺序的)
      *     EPHEMERAL (短暂的,生命周期依赖于client session)
      *     EPHEMERAL_SEQUENTIAL  (短暂的,带顺序的)
      */
     zk.create("/testRootPath", "testRootData".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); 

     // 创建一个子目录节点
     zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(),Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT); 
     System.out.println(new String(zk.getData("/testRootPath",false,null))); 

     // 取出子目录节点列表
     System.out.println(zk.getChildren("/testRootPath",true));  

     // 创建另外一个子目录节点
     zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);          
     System.out.println(zk.getChildren("/testRootPath",true));  

    // 修改子目录节点数据
     zk.setData("/testRootPath/testChildPathOne","hahahahaha".getBytes(),-1);            
     byte[] datas = zk.getData("/testRootPath/testChildPathOne", true, null);
     String str = new String(datas,"utf-8");
     System.out.println(str);   

     //删除整个子目录   -1代表version版本号,-1是删除所有版本
     zk.delete("/testRootPath/testChildPathOne", -1);    
     System.out.println(zk.getChildren("/testRootPath",true)); 
     System.out.println(str);

部分例式 具体可参见官网api: http://zookeeper.apache.org/doc/r3.2.2/api/org/apache/zookeeper/ZooKeeper.html#create%28java.lang.String,%20byte%5B%5D,%20java.util.List,%20org.apache.zookeeper.CreateMode%29

3.2Curator

Curator框架提供了一套高级的API, 简化了ZooKeeper的操作。 它增加了很多使用ZooKeeper开发的特性,可以处理ZooKeeper集群复杂的连接管理和重试机制。 这些特性包括:

封装ZooKeeper client与ZooKeeper server之间的连接处理;

提供了一套Fluent风格的操作API;

提供ZooKeeper各种应用场景(recipe, 比如共享锁服务, 集群领导选举机制)的抽象封装.

关于Fluent风格可以查看我的一篇博客(建造者模式),在偶看es搜索源码时发现也使用了Fluent风格。

如下是使用Curator创建对象的方法

public static CuratorFramework createWithOptions(String connectionString, RetryPolicy retryPolicy, int connectionTimeoutMs, int sessionTimeoutMs) {

    return CuratorFrameworkFactory.builder().connectString(connectionString)
            .retryPolicy(retryPolicy)
            .connectionTimeoutMs(connectionTimeoutMs)
            .sessionTimeoutMs(sessionTimeoutMs)
            .build();
}

调用代码如下:

client = createWithOptions(“10.154.156.180:2181”, new ExponentialBackoffRetry(1000, 3), 1000, 1000);
client.start();

如果需要创建新目录节点 依然是Fluent风格

client.create().forPath(“/curator”, new byte[0]);
client.create().withMode(CreateMode.PERSISTENT).forPath(“/curator/childOne”, new byte[0]);

当然创建zk也可以不使用Fluent风格

public static CuratorFramework createSimple(String connectionString) {
ExponentialBackoffRetry retryPolicy = new ExponentialBackoffRetry(1000, 3);
return CuratorFrameworkFactory.newClient(connectionString, retryPolicy);
}

其他方法说明:

create(): 发起一个create操作. 可以组合其他方法 (比如mode 或background) 最后以forPath()方法结尾

delete(): 发起一个删除操作. 可以组合其他方法(version 或background) 最后以forPath()方法结尾

checkExists(): 发起一个检查ZNode 是否存在的操作. 可以组合其他方法(watch 或background) 最后以forPath()方法结尾

getData(): 发起一个获取ZNode数据的操作. 可以组合其他方法(watch, background 或get stat) 最后以forPath()方法结尾

setData(): 发起一个设置ZNode数据的操作. 可以组合其他方法(version 或background) 最后以forPath()方法结尾

getChildren(): 发起一个获取ZNode子节点的操作. 可以组合其他方法(watch, background 或get stat) 最后以forPath()方法结尾

inTransaction(): 发起一个ZooKeeper事务. 可以组合create, setData, check, 和/或delete 为一个操作, 然后commit() 提交

ZooKeeper入门学习 什么是 ZooKeeper:ZooKeeper 是一个分布式应用协调服务,提供高性能、高可用和严格有序的服务。配置管理:集中管理配置信息,简化分布式系统中的配置管理。分布式同步:提供分布式锁和同步机制,解决分布式系统中的一致性问题。命名服务:提供分布式系统中的命名和位置服务。 阅读详情

相关推荐

VS2015与QT界面开发中解决‘ui_xxx.h‘文件类名不一致导致的编译错误

本文详细解析了在VS2015与QT界面开发中,因.ui文件顶层部件objectName与生成类名不一致导致'ui_xxx.h'文件出现'不完整的类型'编译错误的根本原因。通过分步排查,指导开发者统一Qt设计师对象名、自动生成文件类名及代码引用名,并提供强制重新编译UI文件、清理中间文件等解决方案,有效解决此类常见编译问题。

weixin_29009339的博客 248

ZooKeeper的部署以及简单使用

http://sling2007.blog.163.com/blog/static/847327132013283163528/ ZooKeeper的部署以及简单使用   2013-03-08 15:52:14|  分类: 分布式/hadoop |  标签: |举报 |字号大中小 订阅     要想使用ZooKeeper,首先就要把它部署在服务器上跑起来,就

strawbingo的专栏 1797

别再手动写JSON了!用Node-RED OPC UA节点5分钟搞定楼宇温湿度数据采集

本文介绍了如何利用Node-RED和OPC UA节点快速实现楼宇温湿度数据的自动化采集与JSON格式转换。通过可视化工具Node-RED,开发者无需编写复杂代码,5分钟内即可完成从传感器到数据输出的全流程配置,大幅提升智慧楼宇和工业物联网项目的实施效率。

weixin_30368405的博客 431

整合rpc远程调用_RPC---远程过程调用协议(二)(完)

经过大海的一番磨砺,卵石才变得更加美丽光滑【RPC---远程过程调用协议】五、Zookeeper安装1. Zookeeper简介zookeeper分布式管理软件。常用它做注册中心(依赖zookeeper的发布/订阅功能)、配置文件中心、分布式锁配置、集群管理等。zookeeper一共就有两个版本。主要使用的是java语言写的。2. 安装2.1 上传压缩文件上传到 /usr/local/tmp中2....

weixin_39676979的博客 276

Spring Authorization Server实战:从零搭建OAuth2.1授权中心(含数据库改造)

本文详细介绍了如何从零开始使用Spring Authorization Server搭建符合OAuth2.1规范的授权中心,并完成关键的数据库持久化改造。内容涵盖微服务架构下的统一认证需求、基础配置、数据库表设计、高级特性(如令牌自定义、性能优化)以及与现有系统(如SSO、Gateway网关)的集成实战,为构建生产级授权服务提供完整指南。

weixin_29315091的博客 253

ESP32-IDF开发实例-外部Flash与FatFs文件系统数据存取

FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I/O层完全分开。因此,它独立于平台。它可以并入资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。ESP32-IDF对FatFs提供了良好的支持。

视觉与物联智能 2915

https://blog.youkuaiyun.com/qq1130169218/article/details/62042654

(1)Dubbo介绍: 1.dubbo是一个分布式服务框架,架构图如下: 节点角色说明: Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。调用关系说明: 0. 服务容器负责启动,加载,运行服务提供者。1...

qq_35201262的博客 920

土壤数据库辅助工具SPAW计算土壤导水率

首先点击打开根据之前的1比100土壤数据查表得到各个组分含量其中Field Capacity是田间持水量Matric Bulk Density是基质粒密度。

所有专家都曾始于新手 3443

zookeeper学习笔记

刚new出来的Zookeeper,它的状态是连接中的状态,还没有准备好,可以通过countDownLatch来等Zookeeper准备完成;因为过半就可以确定消息已经完成写操作,那么就有可能发生,Client读取到的是没有进行写操作的Follower,此时,可以通过sync从leader上同步一下数据。1. new zookeeper的时候,传入的watch,是session级别的,和path、node没有关系。官方压测,zookeeper选择新的leader的时间不到200ms,可以很快进入高可用状态。

CelineT的博客 833

零基础实战:云开发家政维修小程序搭建指南

欢迎来到这本关于构建家政维修小程序的电子书!在当今数字化的浪潮中,线上服务已成为我们生活中不可或缺的一部分。从点餐购物到居家维修,人们越来越习惯通过指尖轻点来解决各种需求。正是基于这样的背景,我们希望通过这个系列,手把手地带领大家从零开始,搭建一个功能完备、体验流畅的家政维修平台。这不仅仅是一本技术教程,更是一次将想法变为现实的探索之旅。我们将深入浅出地讲解如何运用云开发等现代技术,实现从用户下单、支付,到客服派单、工人接单,再到订单完成和权限管理等一系列核心业务流程。

低代码布道师的博客 3429

4.6 知识库使用指南:如何让AI Agent拥有专业知识

本文介绍了如何为AI Agent构建和使用知识库。知识库的作用是为Agent提供专业知识,包含文档、数据和规则,可用于专业问答和知识检索。使用方法包括创建知识库(上传文档)、向量化处理、知识检索以及在Agent中的应用。核心要点是理解知识库的价值和使用流程。文章还提出了构建方法、检索优化和应用实践等思考题,建议准备高质量数据、优化检索效果并持续更新知识库。下节将介绍用LangGraph构建复杂AI应用。

yonggeit的博客 3008

zookeeper的入门学习

zoo.cfg。

weixin_47188125的博客 1414

2026年运维工程师常见面试选择题

这篇文章总结了30道Linux运维面试常见问题及解析,涵盖基础命令、系统监控、故障排查、数据库、缓存、容器编排等多个方面。主要内容包括: 基础命令使用:如df查看磁盘、free查看内存、top监控进程等 系统监控与故障排查:负载判断、端口检查、进程管理等 中间件相关:Nginx状态码、MySQL主从复制、Redis缓存问题 容器技术:Docker优势、Kubernetes作用 运维理念:高可用、监控告警、发布策略、备份容灾 工作原则:故障处理优先级、运维工程师核心能力 文章不仅提供标准答案,还解析了各命令的

不务正业的猿 191

ZooKeeper入门指南

  ZooKeeper入门指南   目录: 入门:使用ZooKeeper协调分布式应用程序 先决条件 下载 独立操作 管理ZooKeeper存储 连接到ZooKeeper 编程到ZooKeeper 运行复制的ZooKeeper 其他优化   入门:使用ZooKeeper协调分布式应用程序 本文档包含有助于您快速使用ZooKeeper的信息。它主要...

YunWisdom 468

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Zookeeper入门介绍

Zookeeper入门介绍

hfbin的博客 3465

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

zookeeper快速入门一:zookeeper安装与启动

本文是《zookeeper你想要的全都有系列》之快速入门中的第一篇,欢迎大家观看与指出不足。 写在前面: 不影响教程,笔者安装zookeeper用的是WSL(windows下的linux子系统),当然你想直接在windows上用zookeeper也是可以的。 如果你也想用wsl,可以参考这篇文章Windows10安装Linux系统(WSL) 目录 一、zookeeper下载 二、安装zookeeper 三、linux下启动zookeeper 四、windows下启动zookeeper 进入

马不腾的博客 4万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2.Zookeeper入门

简介:Apache Zookeeper是一种用于分布式应用程序的功性能协调服务。提供一种集中式信息存储服务。特点:数据存在内存中,类似文件系统的属性结构(文件和目录),高吞吐量和低延迟,集群高可靠。作用:基于Zookeeper可以实现分布式统一配置中心、服务注册中心、分布式锁等功能的实现;

RubyWinner的博客 1766

zookeeper快速入门

ZooKeeper 是 Apache 开发的分布式协调服务,用于管理大型分布式系统的配置、同步和命名等任务。它通过一个类似文件系统的层次结构存储数据,每个节点(znode)可存储少量信息并支持数据变更监听。ZooKeeper 支持高可用性和高并发访问,提供了命名服务、配置管理、集群管理、锁服务和队列管理等功能,广泛应用于 Hadoop、Kafka 等分布式系统中,帮助开发者简化分布式应用的开发与维护。

执笔写JAVA 1379

【ZooKeeper快速入门】 —— 每天一点小知识

🐬ZooKeeper是一个分布式协调服务,可以用于构建可靠的分布式系统。它提供了一组简单而强大的API,用于实现分布式应用程序的一致性和可靠性。

仰望天空,妳我亦是行人. 1273

Zookeeper入门教程

一、Zookeeper 入门 1.1 概述 Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 Zookeeper工作机制 1.2 Zookeeper特点 1.3 数据结构 ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个ZNode 都可以通过其路径唯一标识。 1.4 应用场景 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服

cosuyo的博客 2418

zookeeper从入门到精通

ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,后成为 Apache 的顶级项目。它为分布式应用提供了高效、可靠的协调服务,例如统一命名服务、配置管理、分布式锁、集群管理等。ZooKeeper 的数据模型类似文件系统,以树形结构存储数据,每个节点称为 Znode,每个 Znode 可以存储数据和子节点。

weixin_44821805的博客 2188

Zookeeper从零入门笔记

统一命名服务:nginx也可以实现 统一配置管理: 统一集群管理: 服务器动态上下线: 软负载均衡: 遇到问题:1防火墙未关闭,2配置错误 sudo systemctl stop firewalld 加到zok.conf中: 3.2 选举机制 1. 第一次启动 3.4 客户端命令行操作 3.2.1 命令行语法 临时节点:退出客户端以后删除 有序节点:可重复,key后自带序号 3.2.4 监听器原理 分为两种情况: 1、请求发送给Leader节点;2、请求发送给Follower节点;

u011005040的博客 1301
上一篇: 我对高并发的理解
下一篇: Spring单例模式多线程安全问题-有状态的Bean
张焱飞
博客等级 码龄11年 8粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值