zoukankan      html  css  js  c++  java
  • Zookeeper基本知识

    1 Zookeeper概述

    Zookeeper是一个开源的,为分布式应用提供协调服务的项目。

    1.1 工作机制

    从设计模式角度来看,zookeeper是一个基于观察者模式设计的分布式服务管理框架。负责存储和管理元数据等信息。它接受观察者的注册,一旦数据发生变化,zookeeper会通知这些观察者,并作出反应。

    1.2 特点
    1. 一个领导者leader,多个跟随着follower组成的集群。(和kafka分区类似)
    2. 集群只要有半数以上的节点存活,zookeeper集群就正常服务
    3. 全局数据一致,每个server保存一份相同的数据副本
    4. 数据更新原子性
    5. 实时性,客户端能读取最新数据
    6. 来自一个客户端的请求顺序执行
    1.3 数据结构

    整体上可以看作一棵树,每个节点称作znode,每一个znode可以存储1MB的数据,通过路径可以唯一标识。

    2 应用场景

    2.1 统一命名服务

    对分布式系统的服务器统一命名,便以识别。

    2.2 统一配置管理

    对配置文件统一管理,每个节点的配置文件修改为一致,比如kafka集群。

    2.3 服务器节点动态上下线

    客户端实时观察服务器上下线的变化。

    2.4 软负载均衡

    在zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。

    3 本地安装

    本地安装用于测试。安装zookeeper前,需要先安装jdk。

    • 将zookeeper安装包拷贝到相应目录
    • 解压安装包
    • 修改配置文件zoo.cfg,设置存储数据目录
    bin/zkServer.sh start//启动zookeeper
    bin/zkServer.sh status//查看zookeeper状态
    bin/zkCli.sh//启动客户端
    bin/zkServer.sh stop//关闭zookeeper
    
    3.1 配置参数
    1. tickTime=2000,服务器之间或客户端与服务器之间维持心跳的时间间隔,每过2000毫秒发送一个心跳
    2. initLimit=10,初始通信实现,领导者和跟随者初始连接时能容忍的心跳数
    3. syncLimit=5,同步通信时限,响应时间超过,则领导者认为跟随着死亡,从服务器列表删除follower
    4. dataDir,保存数据的目录
    5. clientPort=2181,客户端连接端口
  • 相关阅读:
    js 学习之路8:for循环
    js 学习之路7:switch/case语句的使用
    Python语法速查: 16. 时间日期处理
    初级模拟电路:4-1 BJT交流分析概述
    初级模拟电路:3-11 BJT实现电流源
    Python语法速查: 7. 函数基础
    初级模拟电路:3-10 BJT实现开关电路
    初级模拟电路:3-9 BJT三极管实现逻辑门
    Python语法速查: 6. 循环与迭代
    初级模拟电路:3-8 BJT数据规格书(直流部分)
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/12600321.html
Copyright © 2011-2022 走看看