点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人。

文章不定期同步公众号,还有各种一线大厂面试原题、我的学习系列笔记。

什么是zookeeper?

  • 中间件
  • 作用于分布式系统
  • 支持java、c语言的api

为什么要用zookeeper?

  • 保证事务执行顺序性

没有zookeeper的时候,多台服务器上执行任务我们需要考虑各台服务器上任务的协调,比如事务A在事务B前面执行,由于网络的不稳定性,我们必须考虑到这个问题,但是zookeeper出现后,zookeeper帮我们解决了这部分问题,我们以后不再需要过分专注于分布式协调问题了,我们可以更加专注于业务逻辑的设计。

  • 保证数据的实时性

简单来说,就是用户读取到的永远是更新之后的信息以后,用户不会读取到比这个信息更旧的信息。

  • 对master主节点管理

zooKeeper给注册到他下面的所有客户端一个编号,然后让这些机器都拥有相同的元数据视图,当Master节点挂掉后,马上启用编号最小的那台机器作为Master节点。

  • 封装

    zooKeeper的目标就是封装好复杂易出错的关键性服务,将复杂低效不稳定的功能封装成简单易用、性能高效、功能稳定的接口提供给用户,提高用户的开发效率

zookeeper命令

进入zookeeper安装目录下的bin目录,运行一下命令:

  • ./zkServer.sh start:启动zookeeper服务器

    ./zkServer.sh restart:重启zookeeper服务器

    ./zkServer.sh status:查看当前zookeeper服务器状态,单机为standalone态

    ./zkServer.sh stop:停止zookeeper服务器

在bin目录下打开zk客户端: 运行./zkCli.sh,然后ls可以查看zookeeper节点结构(节点目录)

zookeeper特性

  • 一致性:与Mysql的一致性不同,此指数据按顺序分批入库
  • 原子性:所有zookeeper节点对事务的处理,要么全部成功,要么全部失败
  • 单一视图:所有zookeeper节点看到的数据是一模一样的
  • 可靠性:每次对zookeeper节点的操作都会保存
  • 实时性:客户端读取的数据是最新的

zookeeper数据模型

  • zookeeper数据模型可以看作tree树结构或linux目录结构
  • 每个zk节点有数据、有子节点;每个节点可分为临时节点与永久节点(临时节点session超时或者关闭客户端-服务端连接,则数据丢失,永久节点则不会);每个zk节点有版本号,更新数据时会累加版本号;每个zk节点数据大概几k,不易过大;每个节点都有权限控制列表acr,以控制权限

zookeeper有什么用?

  • master选举:主节点挂了之后,会重新进行主节点选举
  • 统一修改配置/信息:把对配置/信息的修改部署到任一台服务器,其他服务器会同步该修改操作
  • 发布于订阅:发布者把信息存在znode上(tree树结构),订阅者可以去读取该修改
  • 提供分布式锁:不同zk服务节点对同一个资源进行操作,则zk节点按顺序获取该资源的分布式锁,再进行操作

OK,如果文章哪里有错误或不足,欢迎各位留言。

创作不易,各位的「三连」是二少创作的最大动力!我们下期见!

zookeeper篇-初识zookeeper的更多相关文章

  1. 【Zookeeper】初识zookeeper

    单机模式 安装并解压: 修改配置文件,conf/zoo.cfg(配置完成后,启动后,可以通过netstat-ano命令查看是否有你配置的clientPort端口号在监听服务) tickTime: zo ...

  2. 初识zookeeper(1)之zookeeper的安装及配置

    初识zookeeper(一)之zookeeper的安装及配置 1.简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送. ...

  3. CentOS7 搭建Kafka(一)zookeeper篇

    CentOS7 搭建Kafka(一)zookeeper篇 近几年当红小生Kafka备受各路英雄好汉追捧,一点不比老前辈RabbitMQ和ActiveMQ差,因为流行,所以你就得学啊:我这么懒,肯定是不 ...

  4. 初识zookeeper以及安装和集群部署

    初识zookeeper以及安装和集群部署     一.Zookeeper单体版安装     在安装zookeeper之前要先安装jdk环境,具体在linux环境安装jdk1.8请参照linux笔记. ...

  5. 大数据篇:Zookeeper

    Zookeeper 1 Zookeeper概念 Zookeeper是什么 是一个基于观察者设计模式的分布式服务管理框架,它负责和管理需要关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Z ...

  6. 初识ZooKeeper

    最近在看Apache下的一个开源项目ZooKeeper(http://zookeeper.apache.org/doc/trunk/),用百度百科介绍的来说,Zookeeper是一个针对大型分布式系统 ...

  7. ZooKeeper学习总结 第一篇:ZooKeeper快速入门

    1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...

  8. Zookeeper笔记(一)初识Zookeeper

    为什么需要Zookeeper Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master选举 ...

  9. 初识ZooKeeper与集群搭建实例

    原文链接:http://www.linuxidc.com/Linux/2015-02/114230.htm zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Ch ...

随机推荐

  1. Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)

    插入数据 要将数据插入分布式表,您可以使用标准 PostgreSQL INSERT 命令.例如,我们从 Github 存档数据集中随机选择两行. INSERT http://www.postgresq ...

  2. elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 ?

    面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...

  3. 请说说你对Hibernat的理解?JDBC和Hibernate各有什么优势和劣势?

    Hibernate是一个轻量级的持久层开源框架,它是连接Java应用程序和关系数据库的中间件,负责Java对象和关系数据之间的映射.Hibernate内部对JDBC API进行了封装,负责Java对象 ...

  4. Java 中是如何支持正则表达式操作的?

    Java 中的 String 类提供了支持正则表达式操作的方法,包括:matches(). replaceAll().replaceFirst().split().此外,Java 中可以用 Patte ...

  5. 上传文件到阿里云linux服务器(windows到Linux的文件上传)

    在"运行"中输入cmd,打开控制台,切换到刚才Putty的安装目录下,我的是E:\Putty,然后输入pscp命令,我们需要这个命令来实现文件的上传.如下命令格式: F:\PuTT ...

  6. 为什么要配置JDK环境变量?

    1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的bin目录增加到现有的PATH ...

  7. elasticsearch 是如何实现 master 选举的 ?

    面试官:想了解 ES 集群的底层原理,不再只关注业务层面了. 前置前提: 1.只有候选主节点(master:true)的节点才能成为主节点. 2.最小主节点数(min_master_nodes)的目的 ...

  8. springboot-数据库访问之mybatis

    选中mysqldirver,数据库驱动器 选中jdbc ,帮我们配置数据源,连接数据库 选中mybatis,持久层 <!-- 这个不是springboot官方出来的,是mybatis为了设备sp ...

  9. piwik安装部署

    1.piwik介绍 Piwik是一个PHP和MySQL的开放源代码的Web统计软件,它给你一些关于你的网站的实用统计报告,比如网页浏览人数,访问最多的页面,搜索引擎关键词等等. Piwik拥有众多不同 ...

  10. carsim输入输出变量

    来自:https://wenku.baidu.com/view/3405ded5443610661ed9ad51f01dc281e43a5673.html 输出量