• 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,客户端连接端口
  • 相关阅读:
    在WCF中使用websocket
    KISSY
    微信小程序开发参考资料汇总
    PhpStorm最新版 2017激活办法
    为什么我要用 Node.js? 案例逐一介绍
    产品的三种流程图,你都知道吗?
    数据挖掘工具分析北京房价 (一) 数据爬取采集(转)
    使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)
    服务端指南 数据存储篇 | 聊聊 Redis 使用场景(转)
    wxBot微信机器人框架(转)
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/12600321.html
Copyright © 2020-2023  润新知