随笔分类 - zookeeper&Curator
摘要:1、什么是zookeeper的会话过期? 通常使用zookeeper集群模式,client和zookeeper集群(3个实例)建立一个会话session。 所谓session即client随机与其中一个zk provider建立的链接,并且互发心跳heartbeat。 zookeeper集群负责管理
阅读全文
摘要:ZooKeeper的超时异常包括两种: 1)客户端的readTimeout导致连接丢失。 2)服务端会话超时sessionTimeout导致客户端连接失效。 客户端的readTimeout导致连接丢失 ZooKeeper客户端的readTimeout无法显示设置,根据会话超时时间计算得来: 1. 当
阅读全文
摘要:之前我们了解了基于Corator的分布式锁之后,我们就很容易基于其实现一个分布式计数器,顾名思义,计数器是用来计数的, 利用ZooKeeper可以实现一个集群共享的计数器。 只要使用相同的path就可以得到最新的计数器值, 这是由ZooKeeper的一致性保证的。Curator有两种计数器。 Sha
阅读全文
摘要:什么是BarrierBarrier是一个同步点,每一个线程到达此点都要等待,直到某一个条件满足,所有的线程才能继续进行。比如:赛跑大家都知道,所有比赛人员都会在起跑线外等待,直到教练员的枪响之后,所有参赛者立刻开始赛跑。 JDK的并发包下有CyclicBarrier,它看起来和CountDownLa
阅读全文
摘要:随着业务增加,以前简单的系统已经变得越来越复杂,单纯的提升服务器性能也不是办法,而且代码也是越来越庞大,维护也变得越来越困难,这一切都催生了新的架构设计风格 – 微服务架构的出现。 微服务给我们带来了很多好处,例如:独立可扩展、易维护。但是随着应用的分解,微服务的引入,服务越来越多,业务系统与服务系
阅读全文
摘要:分布式锁和Master选举相似点分布式锁和 Master选举有几种相似点,实际上其实现机制也相近: 同一时刻只有一个获取锁 / 只能有一个leader对于分布式排他锁来说,任意时刻,只能有一个进程(对于单进程内的锁是单线程)可以获得锁。对于领导选举来说,任意时刻,只能有一个成功当选为leader。否
阅读全文
摘要:在分布式环境中 ,为了保证数据的一致性,经常在程序的某个运行点(例如,减库存操作或者流水号生成等)需要进行同步控制。以一个"流水号生成"的场景为例,普通的后台应用通常都是使用时间戳来生成流水号,但是在用户访问量很大的情况下,可能会出现并发问题。下面通过示例程序就演示一个典型的并发问题: public
阅读全文
摘要:Zookeeper原生就支持通过注册Watcher来进行事件监听,但是其使用并不是特别方便,需要开发人员反复注册Watcher,比较繁琐。Curator引入了Cache来实现对zookeeper服务端事件的监听,Cache是Curator中对事件的包装,其对事件的监听其实可以近似的看做是一个本地缓存
阅读全文
摘要:原生API中基本上所有的操作都有提供异步操作,Curator也有提供异步操作的API。 异步操作在使用以上针对节点的操作API时,我们会发现每个接口都有一个inBackground()方法可供调用。此接口就是Curator提供的异步调用入口。对应的异步处理接口为BackgroundCallback。
阅读全文
摘要:Oleg Yermolaiev Scala Developer & Technical Lead zookeeper scala configuration curator distributed One of the steps towards building a successful dist
阅读全文
摘要:Today I’ve got a sudden speech about Apache Zookeeper in corporate architects community. There should have been another speaker, but he did not arrive
阅读全文
摘要:本文主要讲解如下内容: 为什么要使用分布式锁? 分布式锁特性! 分布式锁的实现方式有哪些? Curator分布式锁原理 Curator分布式锁实现类UML及相关类的介绍 基于Redis,数据库实现分布式锁 为什么要使用分布式锁? 在传统的单机应用中,我们使用JAVA提供的synchronized、R
阅读全文
摘要:一 简介 Apache Curator是一个比较完善的ZooKeeper客户端框架,通过封装的一套高级API 简化了ZooKeeper的操作。通过查看官方文档,可以发现Curator主要解决了三类问题: 封装ZooKeeper client与ZooKeeper server之间的连接处理 提供了一套
阅读全文
摘要:ZooKeeper Version 3.4.x Compatibility ZooKeeper 3.4.x is now at end-of-life. Consequently, the latest versions of Curator have removed support for it.
阅读全文
摘要:zookeeper 常用的3种java客户端: zookeeper原生Java API ZkClient Apache curator 1、zookeeper原生Java API Zookeeper客户端提供了基本的操作,比如,创建会话、创建节点、读取节点、更新数据、删除节点和检查节点是否存在等。但
阅读全文
摘要:序言直接使用zookeeper的api实现业务功能比较繁琐。因为要处理session loss,session expire等异常,在发生这些异常后进行重连。 又因为ZK的watcher是一次性的,如果要基于wather实现发布/订阅模式,还要自己包装一下,将一次性订阅包装成持久订阅。 另外如果要使
阅读全文
摘要:Problem There are time we would want to remove a ZK node in a secure cluster which is ACL protected. Something as below ACLs [zk: xyz.com:2181(CONNECT
阅读全文
摘要:ZooKeeper Dynamic Reconfiguration Overview Changes to Configuration Format Specifying the client port The standaloneEnabled flag The reconfigEnabled f
阅读全文
摘要:https://www.jianshu.com/p/73eec030db86 项目中用到storm+kafka+zookeeper,在实际应用中zk和kafka常出问题,这里记录下在使用zk过程中的问题。 注:zk版本是3.4.8,kafka是0.8.2.0。zk、storm和kafka都是运行在同
阅读全文
摘要:前言 ZooKeeper是雅虎的。用Ant进行软件构建。 千里之行,始于足下。想看源码的第一步,是下载源码并导入某个IDE工具。 Ant http://ant.apache.org/ Windows: 下载Ant,解压到硬盘,比如C:\Work\apache-ant-1.9.7,在环境变量中增加AN
阅读全文