zoukankan      html  css  js  c++  java
  • zk系列-zookeeper概述

    接触zk是2年前了,最近工作又比较依赖于zk,所以准备起个系列文章,系统的总结下。

    zookeeper是一个分布式的用于协调的服务,起源于Hadoop中的一个组件。分布式系统可以用zookeeper实现统一命名服务、配置管理、分布式锁、集群管理等功能。

    数据结构

    zk维护的数据结构类似于操作系统中的文件系统,每一个item都是一个节点(znode),节点上存储二进制的数据或不存,如图。


    节点类型:临时节点(ephemeral)和持久节点(persistent)。节点可以指定为SEQUENTIAL,这样的节点名字后面会自动追加一个10位的单调递增的序号,同一个父节点下的SEQUENTIAL子节点间保持单调递增。

    节点监控:各个节点(一个路径代表一个znode)的变化(删除、值变化、子节点变化),都可以通知监听该节点的客户端,触发客户端做一些操作。

    其他特性:znode有自己的ACL,决定自己对外的存取修改权限;znode可以维护多个版本的数据;znode已存在,继续在该路径创建node,node名会自动编号。

    zk集群

    zk可以单机部署或者集群部署。整个zk分布式系统中有3个角色:client、follower、leader,如图。


    leader负责zk集群中事务的协调,事务一致性和leader的选举都是基于Paxos协议实现的。集群中还可以有一个角色Observer,只能接受client的连接,不具有选举和写的权力,单纯地为了增加系统的读性能。

  • 相关阅读:
    字符串匹配——KMP算法(C++)
    数论——Fibonacci数列(C++)
    数据结构——线段树之二(C++)
    数据结构——线段树之一(C++)
    最后的最后
    开始的开始
    10.25模拟 保留道路
    10.25模拟 列车调度
    10.25模拟 三角形
    洛谷 P1093 奖学金
  • 原文地址:https://www.cnblogs.com/whuqin/p/4981974.html
Copyright © 2011-2022 走看看