`

Curator框架简单介绍和使用

    博客分类:
  • Java
阅读更多
Curator框架简单介绍和使用


什么是Curator?
  Curator发音“kyoor͝ˌātər:”,是ZooKeeper的keeper。
“Guava is to Java what Curator is to ZooKeeper”
                                 ---Patrick Hunt, ZooKeeper commiter
使用Curator
  • 获取一个连接
  • 如果你仅需要一个ZooKeeper连接管理和重试策略的包装,使用curator-framework的包就行。Curator 连接实例(CuratorFramework)可从CuratorFrameworkFactory得到。一个
    CuratorFramework对应ZooKeeper集群,代码看起来像这样:
    RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3)
    CuratorFramework client = CuratorFrameworkFactory.newClient(zookeeperConnectionString, retryPolicy);
    client.start();

    client必须启动,当不再使用时关闭
  • 直接调用ZooKeeper
  • 一旦有了 CuratorFramework实例,你可以直接调用ZooKeeper
    client.create().forPath("/my/path", myData)

    这样一来Curator就会管理ZooKeeper连接,并且当连接错误时会有重试操作。

    秘诀
  • 分布式锁
  • InterProcessMutex lock = new InterProcessMutex(client, lockPath);
    if ( lock.acquire(maxWait, waitUnit) ) 
    {
        try 
        {
            // do some work inside of the critical section here
        }
        finally
        {
            lock.release();
        }
    }

  • 领导选举
  • LeaderSelectorListener listener = new LeaderSelectorListenerAdapter()
    {
        public void takeLeadership(CuratorFramework client) throws Exception
        {
            // this callback will get called when you are the leader
            // do whatever leader work you need to and only exit
            // this method when you want to relinquish leadership
        }
    }
    
    LeaderSelector selector = new LeaderSelector(client, path, listener);
    selector.autoRequeue();  // not required, but this is behavior that you will probably expect
    selector.start();


    公共类ZKPaths
    静态的方法,操作ZooKeeper ZNode paths
  • getNodeFromPath : 给一个全路径,返回节点名称。例子  "/one/two/three" 返回 three
  • mkdirs:创建path里的所有节点。
  • getSortedChildren:返回有序seq的子集
  • makePath:合并path和node。

  • 代码例子:
    https://github.com/apache/curator/tree/master/curator-examples


    参考
    https://cwiki.apache.org/confluence/display/CURATOR/Tech+Notes

    http://curator.apache.org/index.html



    分享到:
    评论

    相关推荐

      Zookeeper开源客户端框架Curator简介与示例

      Curator 是一个基于 ZooKeeper 的开源客户端框架,它为 ZooKeeper 提供了高级抽象和功能,使得开发人员能够更方便地使用 ZooKeeper。 **Curator 框架概述** Curator 包含多个模块,如 ZooKeeper 客户端连接管理、...

      Curator的JAR包

      Curator是Apache ZooKeeper的一个强大的客户端库,它为开发者提供了丰富的工具和抽象,使得在分布式环境中操作ZooKeeper变得更加简单。ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务,它是集群的管理...

      curator_zookeeper需要的jar

      3. `curator-framework-2.8.0.jar`:提供了Curator的框架层,包括会话管理、重试策略、连接状态监听等核心功能。 4. `curator-test-2.8.0.jar`:这是一个测试库,包含了一些用于单元测试和集成测试的工具,如模拟...

      zookeeper Java api - curator 5.6.0

      Apache Curator 是一个高度封装的 ZooKeeper Java 客户端库,它简化了与 ZooKeeper 交互的复杂性,提供了更高级别的抽象和实用工具。...使用 Curator 5.6.0,你可以更加便捷地实现分布式协调、配置管理和一致性服务。

      Zookeeper 原生api zkClient Curator操作

      **三、Curator框架** Curator是Apache的一个顶级项目,为Zookeeper提供了更高级别的抽象和更强大的功能,适合复杂的应用场景。 1. **连接管理**:Curator处理会话管理和重试策略,避免了手动处理会话失效和重连的...

      zookeeper_demo maven项目:包含原生API、zkclient、Curator操作

      3. **Curator框架** Curator是Apache的一个顶级项目,它是对Zookeeper客户端API的进一步封装,提供了更高的抽象层次和更多的实用工具,如recipes(配方),如分布式锁、领导选举、队列和命名服务等。Curator的出现...

      使用curator实现zookeeper锁服务的示例分享

      本文将详细介绍如何使用Curator实现Zookeeper的锁服务,并提供一个具体的示例。 首先,我们需要了解Curator的基本概念。Curator是Netflix开源的一个用于简化Zookeeper使用的Java客户端库,它提供了很多高级功能,...

      ZooKeeper-Curator:zookeeper的curator客户端

      1. **Curator框架概述** - Curator提供了一套完整的解决方案,包括连接管理、故障检测、交易和模式操作等。 - 它包含多个模块,如CuratorClient、CuratorFramework、Curator recipes等,每个模块都专注于特定的...

      swift-Curator是Swift编写的轻量Key-Value文件管理

      1. **轻量级**:Curator设计小巧,不依赖大型框架,易于集成到项目中,不会增加过多的包体积。 2. **高性能**:它优化了读写操作,使得数据的存取速度快速,特别适合缓存频繁访问的数据。 3. **简单API**:Curator...

      curator-client-2.4.2.zip

      1. **并行处理**:Scala集合框架原生支持并行操作,但KollFlitz提供了更高级别的抽象,使并行处理更加简单直观。 2. **条件过滤**:除了基础的filter方法,KollFlitz还提供了基于多个条件的过滤操作,这在处理复杂...

      feed-curator:简单的原型React应用程序调用设计的REST API端点并通过Python进行数据转换

      【标题】"feed-curator" 是一个基于React的简单原型应用,它展示了如何与设计的REST API端点交互,同时利用Python进行数据转换。这个项目旨在提供一个基础框架,帮助开发者理解前端与后端交互的基本流程,以及如何...

      VIP-02 Zookeeper客户端使用与集群特性(1)

      ### VIP-02 Zookeeper客户端使用与集群特性(1) ...综上所述,Curator框架极大地简化了ZooKeeper的使用难度,通过其强大的功能和灵活的配置选项,开发者能够更加高效地开发出健壮的分布式应用程序。

      Zookeeper 分布式过程.pdf

      本书的第二部分还介绍了C语言客户端的使用以及Curator框架,它是对ZooKeeper API的一个高级封装库,简化了客户端的开发工作。 在第三部分中,“第9章ZooKeeper内部原理”和“第10章运行ZooKeeper”深入探讨了...

      分布式minisql个人报告-裴睿韬-31901060871

      项目中使用 Curator 5.21 版本来处理 Zookeeper 的连接和操作。 3. **日志系统**:使用 log4j 1.2.17 作为日志记录工具,它允许开发者记录应用程序的运行日志,方便问题排查和系统监控。 4. **单元测试**:使用 ...

      zookeeper的jar包

      3. **log4j-1.2.15.jar**:这是一个经典的日志记录框架,用于收集和记录Zookeeper运行时的各类信息,便于诊断和调试。开发者可以调整其配置来控制日志输出的级别和格式。 4. **curator-framework-3.2.1.jar, ...

      boson-0.0.5.zip

      Curator通过提供高级API和策略,使得与ZooKeeper的交互更加简单和可靠。 Curator Extensions则是在Curator基础之上构建的一系列额外的配方或工具,增加了更多功能和便利性。这些扩展可能包括新的操作模式、故障切换...

      基于分布式锁或xxx-job实现分布式任务调度.zip

      本项目可能使用了如ZooKeeper、Redis或Apache Curator等工具来实现分布式锁。这些工具能够提供高可用性和可扩展性,确保在分布式系统中的任务调度一致性。 而“xxx-job”可能指的是某种特定的分布式任务调度框架,...

      基于zookeeper的分布式锁实现demo

      本部分将详细介绍使用Zookeeper实现分布式锁的知识点。 Zookeeper是Apache的一个开源项目,它为分布式应用提供了高可用性、顺序保证以及集群间同步等特性,它能够很好地帮助实现分布式锁。 **Zookeeper分布式锁的...

      zookeeper依赖的jar包

      4. **Netty**:Zookeeper使用Netty作为网络通信框架,处理客户端的连接和请求。Netty提供了高效的异步事件驱动的网络应用框架,相关的jar包为`netty-all-x.x.x.jar`。 5. ** curator-recipes**:Curator是Facebook...

      Zookeeper综述1

      学习Zookeeper的基础操作包括创建、读取、更新和删除ZNode,以及使用各种客户端工具,如命令行客户端和Java API,如ZKClient和Curator。熟悉这些操作对于理解Zookeeper的工作原理至关重要。 1.1.3. Zookeeper进阶 ...

    Global site tag (gtag.js) - Google Analytics