ZooKeeper 学习笔记(一)】的更多相关文章

ZooKeeper学习笔记 1.   zookeeper基本概念 zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是hadoop和Habase的重要组件,是为分布式应用提供一致性服务的软件. 2.   zookeeper的特征 2.1. 简易 ZooKeeper的最重要核心就是一个精简文件系统,提供一些简单的操作以及附加的抽象(例如排序和通知). 2.2. 易表达 ZooKeeper的原型是一个丰富的集合,它们是一些已建好的块,可以用来构建大型的协作数据结构和协议,例如:分布…
zookeeper学习笔记(二)--内部原理 1. zookeeper的节点的类型 总的来说可以分为持久型和短暂型,主要区别如下: 持久:客户端与服务器端断开连接的以后,创建的节点不会被删除: 持久化目录节点:客户端与zookeeper断开连接之后,该节点依旧会存在: 持久化顺序编号目录节点:客户端与zookeeper断开连接之后,该节点依旧会存在,只是zookeeper会给该节点名称进行顺序编号: 短暂:客户端和服务端断开连接之后,创建的节点自己删除 临时目录节点:客户端与zookeeper断…
zookeeper学习笔记(一)--概述 1. 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目.zookeeper从设计模式的角度来理解:是一个基于观察者设计模式的分布式服务管理框架,她负责存储和观察大家都关心的数据,然后接收观察者的注册,一旦这些数据的状态发生变化,zookeeper就将负责通知已经在zookeepr上注册的那些观察者做出相应的反应. 2. zookeeper的特点 1)Zookeeper:它是一个由一个leader,多个followe…
Zookeeper学习笔记(中) Zookeeper的基本原理和基本实现 深入了解ZK的基本原理 ZK的一致性: ZAB 协议: Zookeeper 原子消息广播协议 ZK通过选举保证 leader 的高可用, 三个阶段: * 发现:选举 leader * 同步:Follower 或者 Observer 从 leader 中同步最新数据 * 广播: 服务器角色: * Leader:领导者, 所有更新操作通过 leader 进行 * Follower:跟随者, 有投票权, leader挂了之后有权…
Zookeeper学习笔记 本篇主要是一些基本的介绍和API的使用介绍, 有些只是记录了知识点,而没有完全在笔记中详细解释, 需要自行查找资料补充相关概念 主要参考了课程中的内容: Zookeeper分布式系统开发实战 Zookeeper 概述 简介: 定义 : 分布式系统, 保证系统高可用, 并且高性能 高性能, 分布式的, 分布应用协调服务 使用文件系统目录树作为数据模型 ZK典型用用场景: 注册订阅 负载均衡 命名服务 分布式协调/通知 集群管理 ZK基本概念: 角色:在集群中的角色 le…
作者:Grey 原文地址:ZooKeeper学习笔记一:集群搭建 说明 单机版的zk安装和运行参考:https://zookeeper.apache.org/doc/r3.6.3/zookeeperStarted.html 单机版的zk只适合用于测试或者开发环境,不适合用于生产环境. 本文主要介绍zk的集群搭建. 环境 CentOS 7 ZooKeeper 3.6.3 准备工作 第一步,准备四个Linux实例,zk01~zk04,我的四个实例的ip分别是: zk01:192.168.205.14…
作者:Grey 原文地址:ZooKeeper学习笔记三:使用ZooKeeper实现一个简单的配置中心 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 很多程序往往是通过心跳检测来判断配置的变更,通过zk的回调机制,我们可以实现比心跳更为快速的配置检测机制,包括配置的新增,修改和删除 流程也比较简单: 环境准备 一个zk集权,ip和端口分别为: 192.168.205.145:2181 192.168.205.146:2181 192.168.205.147…
Grey ZooKeeper学习笔记二:API基本使用 准备工作 搭建一个zk集群,参考ZooKeeper学习笔记一:集群搭建. 确保项目可以访问集群的每个节点 新建一个基于jdk1.8的maven项目. 配置依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.6.3</vers…
作者:Grey 原文地址: ZooKeeper学习笔记四:使用ZooKeeper实现一个简单的分布式锁 前置知识 完成ZooKeeper集群搭建以及熟悉ZooKeeperAPI基本使用 需求 当多个进程不在同一个系统中,用分布式锁控制多个进程对资源的访问. 在单机情况下,可以使用JUC包里面的工具来进行互斥控制. 但是在分布式系统后,由于分布式系统多线程.多进程并且分布在不同机器上,这将使原单机并发控制锁策略失效,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁的…
这是ZK学习笔记的下篇, 主要希望可以分享一些 ZK 的应用以及其应用原理 我本人的学习告一段落, 不过还遗留了一些ZK相关的任务开发和性能测试的任务, 留待以后完成之后再通过其他文章来进行分享了 ZK应用场景: 1. 一个服务多台机器, 快速修改配置 2. 服务的消费者如何动态知道服务有多少个提供者 3. 生产系统部署多少个业务系统以及每个业务系统提供多少接口 ZK案例-配置管理: 服务端: 每次启动, 会将提供的request都注册到 ZK 中 客户端: 启动时读取 ZK 中所有的 serv…