zookeeper 分布式协调服务
分布式协调服务作用是将多机协调的职责从分布式应用中独立出来,以减少系统的耦合性和增加扩展性。
而zookeeper采用分布式中经典的主从架构:master->slave,通常以动态的存储分布式应用程序中关键的元数据
来达到分布式协调服务的作用,可提供如leader选举、负载均衡、服务发现等服务。
整体架构:
zookeeper采用树形状层级化的内存命名空间,结构类似于文件系统的目录结构,其中每个目录节点称为ZNode,
不同的是每个ZNode每个均可以存储数据,同时具有data、type、version、children、ACL等属性。
其中data:表示存储的实际的数据;type:znode类型、version:节点版本,children:子节点、ACL(Access Control List):权限管理
的一个配置List,定义谁可以对该ZNode进行访问、修改、删除等操作;同时ZNode的数据访问具有原子性,即保证事务请求在各个服务器上
应用的一致性,要嘛均应用,要嘛均不应用。
ZNode类型:
Persistent(持久化节点)、Ephemeral(临时节点,伴随session的生命周期)、sequence(唯一命名,文件名默认追加唯一的自增数字,该类型不会单独存在)
根据三种节点类型,衍生出ZNode四种类型:Persistent、Ephemeral、Persistent_sequence、Ephemeral_sequence
Watcher监听器:
zookeeper的发布/通知机制,当ZNode发生变化,触发watcher,client端可接收到变更通知,而watcher有一个重要的特征:triggered once即watcher一旦触发,
就会被删除,之后需要客户端重新注册watcher继续监听znode的变化,以变快速作出响应。
Seesion:
seesion作为客户端与zookeeper之间的通信通道,现实环境中zookeeper一般是以集群的模式搭建的,而服务器个数推荐奇数,客户端只需要随机的
选择一个服务器建立session即可。
session具有时序性、容错性等特点,如时序性即当客户端发送消息,zookeeper会按照消息当时序进行记录。容错性方面,zookeeper以集
群当形式搭建,zookeeper会保证各个服务器的一致性。当客户端连接的服务器宕机,session会自动连接到其他服务器上。
草稿待续。。。
zookeeper 分布式协调服务的更多相关文章
- ZooKeeper 分布式协调服务介绍
0. 说明 从自己的独立博客迁移,该部分为 Zookeeper分布式协调服务介绍 原文链接 ZooKeeper 指南 1. ZooKeeper 简介 [官方介绍] ZooKeeper 是一种集中式服 ...
- Zookeeper分布式协调服务
1.zookeeper是一个分布式协调的服务. 2.安装zookeeper的软件的机器,我们称之为zk server 3.zk里面的角色有leader.follower.observer,注意只有一个 ...
- zookeeper分布式协调服务的使用一
Zookeeper是一个高性能,分布式的应用协调服务. 提供服务: 1.集群成员的管理(Group Membership) 2.分布式锁(Locking) 3.选主(Leader Election) ...
- 分布式系统理论基础8:zookeeper分布式协调服务
本文转自 https://www.cnblogs.com/bangerlee/p/5268485.html 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到 ...
- 分布式协调服务-Zookeeper
什么是 zookeeper? Zookeeper 是google的chubby一个开源实现,是hadoop的分布式协调服务 它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 ...
- 分布式协调服务Zookeeper集群之ACL篇
分布式协调服务Zookeeper集群之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zookeeper ACL相关知识概览 1>.zookeeper官方文档(h ...
- 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比
分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的J ...
- 分布式协调服务Zookeeper集群搭建
分布式协调服务Zookeeper集群搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装jdk环境 1>.操作环境 [root@node101.yinzhengjie ...
- 分布式协调服务Zookeeper扫盲篇
分布式协调服务Zookeeper扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 身为运维工程师对kubernetes(k8s)可能比较熟,那么etcd(go语言实现)分布式协 ...
随机推荐
- 安装nginx 以及nginx负载均衡
a 安装 [root@localhost ~]# yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++ ...
- ESP8266WiFiGeneric---通用库--事件和配置
ESP8266WiFiSTAClass .ESP8266WiFiScanClass .ESP8266WiFiAPClass 可以访问 ESP8266WiFiGenericClass的private和p ...
- percona-toolkit 3.0.13 简单安装记录
percona-toolkit 3.0.13 简单安装记录 环境:centos6.x mysql:8.0.17 yum -y install perl-DBIyum -y install perl-D ...
- Python 3标准库第四章
第四章日期和时间----------------- 不同于int.float和str,Python没有包含对应日期和时间的原生类型,不过提供了3个相应的模块,可以采用多种表示来管理日期和时间值. ...
- shiro框架学习-4- Shiro内置JdbcRealm
1. JdbcRealm 数据库准备 JdbcRealm就是用户的角色,权限都从数据库中读取,也就是用来进行用户认证授权的安全数据源更换为从数据库中读取,其他没有差别,首先在数据库创建三张表: CR ...
- int 和guid做主键的时候性能的区别
1.在经常需要做数据迁移的系统中,建议用Guid.并且在相应的外键字段,也就是用来做连接查询的字段添加非聚集索引,对于改善性能有极大的好处.where条件的字段也可以适当添加非聚集索引. 2.在使用G ...
- linux-awk-3
awk 基础语法 Awk –Fs '/pattern/ {action}' input-file (或者) Awk –Fs '{action}' input-file -F 为字段分界符.如果不指定, ...
- python3学习笔记(二):Python初识
一.算法 在开始认真地编程之前,首先来解释下什么是计算机程序设计.简单地说,它就是告诉计算机要做什么.计算机可以做很多事情,但是它不会自己思考,需要我们告诉它具体细节,并且使用计算机能够理解的语言把算 ...
- python-opencv学习第二章
阈值分割(五种情况介绍) 二进制阈值化 设定一个特定的阈值量如127那么他的规则为大于等于127的像素点的灰度值设定为最大值(如8为图像灰度值最大为255) 灰度值小于127的像素点的灰度值设定为0 ...
- HTTP深入浅出http请求(转)-----http请求的过程和实现机制
摘要:此文章大概讲明了http请求的过程和实现机制,可以作为了解,至于请求头和响应头的具体信息需要查看下一篇随笔:Http请求详解(转)----请求+响应各字段详解 HTTP(HyperText ...