ZooKeeper学习
文章平均质量分 86
ZooKeeper是一个高性能的分布式应用程序协调服务。
自由与束缚JavaJavaScript
这个作者很懒,什么都没留下…
展开
-
001_ZooKeeper简介
1. ZooKeeper是一个高性能的分布式应用程序协调服务。它暴露了一些常用服务, 例如命名注册, 配置管理, 同步控制和群组服务。我们可以使用ZooKeeper来实现达成共识, 集群管理, 领导者选举和制定协议。您可以根据自己的特定需求在此基础上进行构建。2. ZooKeeper的目标就是封装好复杂易出错的关键服务, 将简单易用的接口和性能高效、功能稳定的系统提供给用户。3. ZooKeeper是以Fast Paxos算法为基础的, Paxos算法存在活锁的问题, 即当有多个proposer交错原创 2021-04-15 10:08:19 · 99 阅读 · 0 评论 -
002_ZooKeeper安装配置
1. Zookeeper下载1.1. Zookeeper官方网址: https://zookeeper.apache.org/index.html1.2. 选择Project下的Releases来到下载页面1.3. 点击Apache ZooKeeper 3.7.0来到该版本的下载页面1.4. 开始下载安装包1.5. 点击Apache ZooKeeper 3.7.0 Source Release下载源码1.6. 开始下载源码包2. Linux下安装ZooKe原创 2021-04-15 10:26:42 · 152 阅读 · 0 评论 -
003_ZooKeeper服务端集群搭建
1. 我们这里使用三台机器搭建ZooKeeper服务器集群。三台机器上都安装好Java和ZooKeeper。2. 修改zoo.cfg配置信息2.1. zookeeper的三个端口作用2181: 对client端提供服务 2888: 集群内机器通信使用 3888: 选举leader使用2.2. 按 server.id = ip:port:port修改集群配置文件。2.3. 三台虚拟机zoo.cfg文件末尾添加配置3. 根据id和对应的地址分别配置myid3.1. 在我们的原创 2021-04-15 10:37:41 · 162 阅读 · 0 评论 -
004_ZooKeeper客户端基础命令
1. 节点类型1.1. PERSISTENT: 持久节点, 默认创建的就是持久节点。1.2. PERSISTENT_SEQUENTIAL: 持久序号节点。创建节点时, zookeeper会在路径上加上序号作为后缀。非常适合用于分布式锁、分布式选举等场景。创建时添加-s参数即可。1.3. EPHEMERAL: 临时节点, 不可在拥有子节点。临时节点会在客户端会话断开后自动删除。适用于心跳, 服务发现等场景。创建时添加参数-e即可。1.4. EPHEMERAL_SEQUENTIAL: 临时序号节原创 2021-04-15 20:41:21 · 435 阅读 · 0 评论 -
005_Java操作ZooKeeper
1. ZooKeeper的JavaClient是我们更轻松的去对ZooKeeper进行各种操作。我们仅需要引入zookeeper-3.7.0.jar和zookeeper-jute-3.7.0.jar两个jar包即可。2. 创建会话2.1. 客户端可以创建一个ZooKeeper实例来连接ZooKeeper服务器。2.2. ZooKeeper构造函数的connectString参数, 连接服务器列表, 使用,分割多个服务器地址。2.3. ZooKeeper构造函数的sessionTimeout参原创 2021-04-16 12:53:17 · 153 阅读 · 0 评论 -
006_Curator框架一
1. 为了更好的实现Java操作ZooKeeper服务器, 后来出现了非常强大的Curator框架, 目前是Apache的顶级项目。里面提供了更多丰富的操作, 例如Session超时重连、主从选举、分布式计数器、分布式锁等等适用于各种复杂的ZooKeeper场景的API封装。2. Curator包含了几个包2.1. curator-framework: 对ZooKeeper的底层API的一些封装。2.2. curator-client: 提供一些客户端的操作, 例如重试策略等。2.3. cu原创 2021-04-16 13:03:52 · 645 阅读 · 1 评论 -
007_Curator框架二
1. 分布式锁功能1.1. 在分布式场景中, 我们为了保证数据的一致性, 经常在程序运行的某一个点需要进行同步操作。Java提供的synchronized或者Reentrantlock等, 是同一个应用程序的多个线程的高并发, 并不是多个服务器(分布式)写同一数据的并发, 这个时候再使用Java提供的锁, 就会出现分布式不同步的问题。我们使用Curator基于ZooKeeper的特性提供的分布式锁来处理分布式场景的数据一致性。2. 分布式锁实例2.1. 新建一个名为CuratorDistribu原创 2021-04-16 13:09:44 · 553 阅读 · 0 评论