zoukankan      html  css  js  c++  java
  • ZooKeeper系列 (一) zookeeper的概念

    zookeeper是什么

    定义:zookeeper是一个开源的分布式协调服务,一个典型的分布式数据一致性解决方案。

    前世今生:Yahoo创建,最初为 hadoop的子项目,是google Chubby的开源实现,现为Apache的顶级项目。

    分布式应用程序可以基于zookeeper实现数据发布订阅、负载均衡、命名服务、分布式锁、集群管理等一系列功能。

    zookeeper提供什么能力

    zookeeper搭建的集群可以保证以下分布式协议

    1. 顺序一致性

    从同一个客户端发起的多个事务请求,将会严格按照发起顺序应用到各个节点

    1. 原子性

    所有事务请求的处理结果在集群中所有机器的应用情况一致。所有机器要么全部应用,要么全部不应用。

    1. 单一视图

    无论连接的是哪个节点,效果都一样

    1. 可靠性

    一旦一个事务被应用,那么该事物状态会被保持

    1. 实时性

    zookeeper保证一定时间段后,客户端从服务端读取到最新状态

    zookeeper的特点

    数据模型简单

    zk的数据模型是一个共享的、树树型结构的名字空间。由一系列ZNode组成,ZNode被称为数据节点,具有层级关系。zk将全量数据存储在内存中,以此来实现提高服务器吞吐,减少延迟的目的

    可构成集群

    zk集群由一组机器构成,3~5台即可,组成zk集群的每台机器在内存中维护当前的服务器状态,并且每台机器之间都互相保持着通信。集群中只要超过一般的机器能正常工作,那整个集群就能正常对外服务

    顺序访问

    对于来自客户端的每个更新请求,zk都会分配一个全局唯一的递增编号,事务操作将按照这个编号按照先后顺序执行,且该特性可被实用于其他用途。

    高性能

    全量数据都存储在内存中,并直接服务于客户端的所有非事务请求,尤其适合读操作为主的场景。

    zookeeper的基本概念

    zk的概念此处只做基本介绍和简单讲解,后续做详细讲解

    集群角色

    • Leader

    一个,提供读写能力

    • Follower

    多个,提供读能力,选举Leader能力

    • Observer

    多个,提供读能力,不参与选举

    会话

    zk客户端和服务器之间是TCP长连接。sessionTimeout设置一个会话超时时间,连接异常断开时,只要在超时时间内连接上任意一台zk节点,之前的会话依然有效。

    节点

    1.机器节点

    构成集群的机器

    2.数据节点 ZNode

    ZNode数据节点,数据模型中的数据单元。数据模型是一棵树,由斜杠(/)分割路径,保存数据内容和属性。可分为持久节点和临时节点两类

    版本

    每个ZNode上面都有一个stat的数据结构,记录3个数据版本:

    1. version:当前ZNode版本
    2. cversion:当前ZNode子节点的版本
    3. aversion:当前ZNode的ACL版本

    ACL

    (access control lists) 权限控制清单

    • CREATE: 创建子节点权限
    • READ: 获取节点数据和子节点列表的权限
    • WRITE: 更新节点数据的权限
    • DELETE: 删除子节点的权限
    • ADMIN: 设置节点ACL的权限

    create和delete都是针对子节点的权限控制

    Watcher

    事件监听。zk的重要特性,zk允许用户注册事件到指定节点,当特定时间触发,事件通知会被发送到具体的客户端。

  • 相关阅读:
    Java设计模式14:常用设计模式之组合模式(结构型模式)
    Android 高级UI设计笔记07:RecyclerView 的详解
    Android进阶笔记07:Android之MVC 理解
    TCP/IP协议原理与应用笔记18:构成子网和超网
    TCP/IP协议原理与应用笔记17:IP编址(重点)
    Java设计模式13:常用设计模式之桥接模式(结构型模式)
    Java设计模式12:常用设计模式之外观模式(结构型模式)
    Java设计模式11:常用设计模式之代理模式(结构型模式)
    《nginx 五》nginx实现动静分离
    《nginx 四》双机主从热备
  • 原文地址:https://www.cnblogs.com/valjeanshaw/p/11891909.html
Copyright © 2011-2022 走看看