zookeeper分布式协调服务的使用一
Zookeeper是一个高性能,分布式的应用协调服务。
提供服务:
1、集群成员的管理(Group Membership)
2、分布式锁(Locking)
3、选主(Leader Election)
4、同步(Synchronization)
5、发布/订阅(Publisher/Subsriber)
一、数据模型
- 分层结构
- 属性结构的中的每个节点叫做Znode
- 每个Znode都有数据(byte[]类型),也可以有子节点
- 节点路径: 斜线分割(/zoo/duck);没有相对路径
- 通过数据结构stat类存储数据的变化,ACL的变化和时间戳
- 数据发生变化时,版本号递增
- 可以对Znode中的数据进行读写操作
二、应用场景
1、数据发布/订阅
发布者将数据发布到zk的一个或者一系列的节点上,订阅者进行数据订阅,当有数据变化时,可以及时的得到数据变化的通知。
2、负载均衡
本质是利用zookeeper的配置管理功能,步骤为:
服务提供者把自己的域名及IP端口的映射注册到zk中
服务消费者通过域名从zk中获取到对应的IP及端口,这个IP及端口有多个,只是获取其中一个
当服务这当及时,对于的域名与IP的对于就会减少一个映射
3、命名服务
在分布式系统中,命名服务(Name Service)也就是重要的应用场景,zk命名服务提供的是资源定位,其本质也是通过zk的集中配置管理和查找
4、分布式协调/通知
通过watcher的通知机制实现
分布式锁
分布式事务
5、集群管理
当前集群中的机器数量
集群中机器的运行时状态
集群中节点的上下线操作
集群节点的统一配置
6、Master选举
临时节点
顺序节点
7、分布式锁
排它锁
共享锁
8、分布式队列
FIFO机制
三、Zookeeper的机制
1、集群角色
Leader:为客户端提供读写服务
Follow:提供读服务,所有写服务需要交给Leader角色,参与选举
Observe:提供读服务,不参与选举过程,一般是为了增强zk集群的读请求的并发能力
2、会话(session)
zk的客户端与zk服务器之间的连接
通过心跳检测保持客户端连接的存活度
接受来自服务端的watch事件通知
可以设置超时间
3、数据节点(Znode)
zk树形结构中的数据节点,用于存储数据
持久节点:一旦创建,除非主动调用删除操作,否者一直存储在zk上
临时节点:与客户端的回话绑定,一旦客户端回话消失,这个客户端创建的临时节点都会被移除
SEQUENTIAL Znode:创建节点时,如果设置属性SEQUENTIAL,则会自动在节点名后面追加一个整型数字
4、版本
Version:当前Znode的版本
Gversion:当前Znode的子节点的版本
Aversion:当前Znode的ACL(访问控制)版本
5、Watcher
作用于Znode节点上
多种事件通知:数据更新,子节点状态等
6、ACL(Access Control Lists)权限控制
CREATE:创建子节点的权限
READ:获取节点数据和子节点列表的权限
WRITE:更新节点数据的权限
DELETE:删除子节点的权限
ADMIN:设置节点ACL的权限
其中:CREATE和DELETE是针对子节点的权限控制
四、zookeeper的配置部署(单机配置)
1、配置环境变量
在/etc/profile文件中配置zk的环境变量
export JAVA_HOME=/usr/andy/jdk/jdk1.7.0_79
export ZOOKEEPER_HOME=/usr/andy/zookeeper/zookeeper-3.4.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$ZOOKEEPER_HOME/lib
生效配置: source /etc/profile
2、zookeeper配置
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/andy/zookeeper/zookeeper-3.4.8/data
dataLogDir=/usr/andy/zookeeper/zookeeper-3.4.8/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
1、将conf下的zoo_sample.cfg修改配置为zoo.cfg
2、tickTime:默认2000ms,作为基本单元,用它的配属来表示系统内部的时间间隔配置,比如:
2*tickTime是客户端回话的超时时间
1*tickTime是客户端与zk服务器端的心跳时间
dataDir:用于配置存储快照文件的目录,如果没有配置dataLogDir,事务日志也会存储在该目录【需要配置】,一般创建data文件夹
dataLogDir:事务日志母了路径,一般在zookeeper下创建logs文件夹
clientPort:zk的运行端口,默认2181
3、启动与关闭
cd zookeeper-3.4.8/bin
./zkServer.sh [start|start-foreground|stop|restart|status|upgrade|print-cmd]
[root@localhost bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/andy/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@localhost bin]# netstat -anp | grep 2181
tcp6 0 0 :::2181 :::* LISTEN 14562/java
[root@localhost bin]#
启动成功。
五、zookeeper集群的配置
暂略。
zookeeper分布式协调服务的使用一相关推荐
- 大数据技术:Zookeeper分布式协调服务
1 Zookeeper概念简介 Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务 A. zookeeper是为别的分布式程序进行服务的 B. zookeeper本身就是 ...
- zookeeper 分布式协调服务
- 详解分布式协调服务 ZooKeeper
这篇文章主要会介绍 Zookeeper 的实现原理以及常见的应用 在 2006 年,Google 发表了一篇名为 The Chubby lock service for loosely-coupled ...
- zookeeper中展示所有节点_分布式协调服务之Zookeeper
??理论篇 一.基础概念 ZooKeeper是开源分布式协调服务,提供高可用.高性能.稳定的分布式数据一致性解决方案,通常被用于实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理. ...
- ZooKeeper:分布式应用程序的分布式协调服务
ZooKeeper--动物园管理员 ZooKeeper:分布式应用程序的分布式协调服务 设计目标 数据模型和分层命名空间 节点和短暂节点 有条件的更新和手表 担保 简单的API 履行 用途 性能 可靠 ...
- ZooKeeper分布式应用程序的分布式协调服务:概述,入门,发布版本
ZooKeeper概述适用于客户端开发人员,管理员和贡献者的技术概述文档 概述 -ZooKeeper的鸟瞰图,包括设计概念和体系结构 入门 -教程风格的指南,供开发人员安装,运行和编程到ZooKeep ...
- 分布式协调服务——Zookeeper入门
什么是Zookeeper Zookeepr的定位: Zookeeper是一个分布式协调服务框架,,为分布式系统提供高效稳健的分布式协调服务,我们要如何理解zookeeper的定位呢?我们知道,各个分布 ...
- 【架构】分布式协调服务-zookeeper
前言 小编最近接触分布式的学习,对于分布式协调服务zookeeper有了一定的了解,现在简单地总结一下这块的知识.奉上一张导图: 分布式环境 一.特点 分布性.并发性.无序性 分布性:部署两 ...
- 分布式协调服务Zookeeper集群搭建
分布式协调服务Zookeeper集群搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装jdk环境 1>.操作环境 [root@node101.yinzhengjie ...
- [转载] zookeeper 分布式锁服务
转载自http://www.cnblogs.com/shanyou/archive/2012/09/22/2697818.html 分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那 ...
最新文章
- 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
- 开发辅助 | 阿里图标库iconfont入门使用
- java错误1601解决方法,求助解决错误
- js获取字符串出现次数最多_js如何获取字符串中出现次数最多的字符
- android imageview 设置网络图片,ImageView加载网络图片
- c语言 搜索彩票期数,根据福利彩票的规则用c++编写一个买彩票开奖的程序,求程序代码,谢谢...
- 【JOURNAL】Salles de SV Toulouse
- linux系统的wps办公软件,Linux学习-7:Linux环境下安装WPS办公软件
- 苹果发布 iOS 14 Beta 8 iphone 14 GM要来咯
- 怎么压缩PPT,这一招就可以搞定
- python控制步进电机代码tx2_步进电机按键控制.lst
- wordpress自建网站备案
- jquery实现最美照片背景色插件
- 服务器系统升级文件转移,多可系统迁移说明
- 如何在UnrealEngine虚幻引擎中进行版本管理
- 2.石头游戏(坑爹)
- IC design的初期阶段(floorplan和place初期)的检查清单checklist
- FTL——垃圾回收GC (Garbage Collection)
- VCM马达智能化也是一个趋势
- Java 8 - Optional Class可选类
热门文章
- iOS app 启动 crash XCode 11 NSPOSIXErrorDomain Code=2 “No such file or directory“
- 算法:插入排序、归并排序、快速排序、堆排序
- 42表盘直径是从哪测量_万用表测量电容容量的方
- 基本数据类型及其对应的包装类
- ajax每次只加载3张图片,使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题(推荐)...
- shell2 for linux,Linux Shell编程(2): for while
- linux常用分区大小,Linux基本知识点总结——硬盘分区及LVM
- leetcode53
- 【2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17)】Justified Jungle【树上思维题】
- 每日一题/004/矩阵/矩阵问题转化为线性方程组问题