Zookeeper从入门到实战
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。该专栏介绍zookeeper的安装部署以及使用Java去连接zookeeper服务器和zookeeper的实现原理。
微服务技术栈
这个作者很懒,什么都没留下…
展开
-
Zookeeper应用实战—— Master 选举
Master选举也是分布式系统中常见的场景,在分布式架构中,为了保证服务的可用性,通常会采用集群模式,也就是当其中的一个机器宕机后,其他节点会接替有故障的机器继续工作。在这种场景中需要选举一个节点为Master节点,当Master节点故障后从其他节点中选取一个节点作为Master节点继续工作。ZooKeeper有两种方式可以帮助实现Master的选举:第一种类似于分布式锁的场景,由Master创建一个临时节点,其他机器监听该节点,一旦Master宕机,该临时节点被删除,其他服务机器监听到节点被删除,则创原创 2020-07-20 21:44:55 · 308 阅读 · 0 评论 -
Zookeeper应用实战——分布式锁
在多线程中,我们可以使用Synchronizeed或者Lock解决多线程情况下共享资源访问的问题,但是它们处理的范围是线程级别的。在分布式架构中多个进程对同一个共享资源进行访问也存在数据安全问题,这个时候也需要使用锁来解决,这就是分布式锁。因为ZooKeeper支持临时节点和节点唯一性使得使用ZooKeeper实现分布式锁成为可能。使用ZooKeeper获取锁的时候,可以在/Locks节点下创建一个临时借点/lock。ZooKeeper基于同级节点的唯一性,使得只有一个客户端能创建成功,该客户端就获取到原创 2020-07-17 22:18:41 · 206 阅读 · 0 评论 -
ZooKeeper Java客户端—权限控制
ZooKeeper是支持权限管理的,能够控制对节点的访问权限,不管是使用ZooKeeper原生APi还是使用ZkClient API,亦或是使用Curator API,我们在创建节点的时候都可以为节点授权,代码如下所示:/原生APi创建节点,授予的权限为ZooDefs.Ids.OPEN_ACL_UNSAFE//后续我们会讲述这个权限zooKeeper.create("/zktest2","zktest".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, Create原创 2020-07-17 16:36:55 · 528 阅读 · 0 评论 -
ZooKeeper Java 客户端连接— Curator
除了ZkClient客户端之外,还有一个用的比较多的ZooKeeper客户端 curator,它是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等,相对于ZkClient它表现的更为强大。Maven依赖引入Curator也是对ZooKeeper的封装,相对于ZkClient,它表现的更为强大,也是Spring Cloud集成ZooKeeper所使用的原创 2020-07-17 11:35:36 · 433 阅读 · 0 评论 -
ZooKeeper Java 客户端连接— ZkClient
使用原生ZooKeeper客户端,比较的复杂,在调用APi时,需要传入较多的参数,并且不支持递归创建节点,递归删除节点,好在目前有很多优秀的框架对ZooKeeper进行了封装,ZkClient就是一款比较优秀的Zookeeper客户端。ZkClient相对于ZooKeeper API用起来更加简单。Maven依赖引入ZkClient是对ZooKeeper原生客户端的封装,除了因此ZooKeeper的jar包之外,我们还需要引入ZkClient的jar包,Maven如下:<dependen原创 2020-07-17 08:57:13 · 1008 阅读 · 0 评论 -
ZooKeeper Java 客户端连接—原生 API
第二部分我们使用命令行讲解了Zookeeper的部分使用,除此之外ZooKeeper还提供了Java和C客户端,我们可以通过使用代码的方式连接和操作ZooKeeper服务。Zookeeper为Java连接提供了zookeeper包用于连接ZooKeeper服务,除此之外还有封装了zookeeper的zkClient客户端和curator客户端。Maven依赖Zookeeper官方为我们提供了客户端用于使用Java连接和操作Zookeeper服务器,我们需要引入的Maven如下:<depe原创 2020-07-17 08:56:49 · 280 阅读 · 0 评论 -
ZooKeeper安装部署与命令行客户端使用
ZooKeeper的安装部署比较简单,ZooKeeper同时提供了单机部署与集群部署两种部署形式,并且提供了命令行客户端。ZooKeeper单机部署从Zookeeper下载稳定的ZooKeeper版本,该学习笔记下载的地址为:Zookeeper下载。然后解压到要部署的目录,目录中包含以下文件夹:bin目录:为ZooKeeper的执行文件目录,包括服务启动执行文件和客户端执行文件等 conf目录:为ZooKeeper的配置文件目录,包括日志的配置和Zookeeper服务的配置 docs目录:为原创 2020-07-16 17:37:30 · 264 阅读 · 0 评论 -
ZooKeeper简介与项目中应用
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。它被设计成易于编程,并且使用了一种以熟悉的文件系统目录树结构为样式的数据模型。它运行在Java中,绑定了Java和C语言。总所周知,服务协调是出了名的很难做。它们特别容易出错,例如竞争条件和死锁。ZooKeeper背后的动机是减轻分布式应用程序从零开始实现协调服原创 2020-07-16 17:37:12 · 736 阅读 · 0 评论