0. 什么是ZooKeeper

ZooKeeper 是一个开源的分布式,它的设计目标是将那些复杂且容易出错的分布式协同服务封装起来,抽象出一个高效可靠的原语集,并以一系列简单的接口提供个用户使用。

ZooKeeper 有几大特征:

易用

ZooKeeper 的理解和使用成本都很低,它提供的是一种层级式的命名空间,这一点和标准的文件系统类似。

可靠

ZooKeeper 服务可以支持集群模式,并且能够轻松扩展,客户端可以连接到任意一个服务器,都能够获得服务。

有序

ZooKeeper 的节点是可以保证有序的。每一个更新操作都会被标记一个序号,ZooKeeper 执行的时候会按照顺序执行。

快速

ZooKeeper 在读多写少的应用场景中可以实现快速响应。这是因为 ZooKeeper 本身的部署架构是主从模式,主节点可以响应读写请求,而从节点只能响应读请求。当读写比例大于10:1时,ZooKeeper 就可以利用扩展能力改善集群的响应速度。

介绍完了 ZooKeeper 的整体情况,我们再来看看 ZooKeeper 的另一个比较重要的概念——节点(Node)。

ZooKeeper 的节点叫做Znode,可以分为两种:一种是持久性的,一种是临时性的。每一个 Znode 都可以存储数据,Znode 的更新是以版本更新的形式迭代的。因此,客户端接收数据的同时还会接收到版本信息。

ZooKeeper 临时节点的生命周期是与 session 相关的,当 session 处于活跃状态时,临时节点会一直存在,当 session 消亡时,临时节点会被删除。

Session

ZooKeeper 客户端在和 Server 端进行连接的时候,会创建一个 session,客户端可以主动关闭 session。当 ZooKeeper 服务端节点没有在指定时间内收到客户端消息的话,服务端也会关闭 session。如果建立连接出错,ZooKeeper 客户端也会自动和其他服务端节点尝试建立新的连接。

1. 安装 ZooKeeper

ZooKeeper 的安装方式非常简单,首先到官网下载 ZooKeeper 的安装包,然后解压安装包。

接着是修改配置文件,进入目录apache-zookeeper-3.6.2-bin/conf,从 zoo_sample.cfg 文件复制出来一个名为 zoo.cfg 的配置文件,修改dataDir=/data/zookeeper,这个目录用于存储 ZooKeeper 的数据。配置好之后,我们就可以启动 ZooKeeper 了,不过为了更好的使用 ZooKeeper 命令,我们把 ZooKeeper 相关命令配置到 PATH 中。

启动 ZooKeeper

现在就可以启动 ZooKeeper 了。只需要使用下面这个命令即可。

zkServer.sh start

启动之后,我们来看一下 ZooKeeper 有没有报错,我们来到 ZooKeeper 目录下的 logs 目录,输入命令

grep -E -i "((exception)|(error))" *

如果没有输出,说明 ZooKeeper 启动没有报错。

接着查看对2181端口的监听

netstat -an | grep 2181

正常监听的话,我们就可以使用客户端进行连接了。

体验 ZooKeeper 命令

在确保 ZooKeeper 服务端启动没有问题后,我们使用客户端进行连接。

连接时会有上图所示的日志输出。

连接好之后可以输入命令

ls -R /

这个命令用来查看 ZooKeeper 现有的节点。

/
/zookeeper
/zookeeper/config
/zookeeper/quota

最初只有几个 ZooKeeper 自带的目录。

这里可以使用 create /app命令来创建一个名为 app 的目录。

2. 小结

对于 ZooKeeper 的初印象到这里就结束了,目前我已经对 ZooKeeper 有了一个大概的了解,并且能够顺利在本机安装 ZooKeeper,对于 ZooKeeper 的命令也有一定的了解。

后面我们会对 ZooKeeper 常见的应用进行介绍。

遇见ZooKeeper:初识相关推荐

  1. 【狂神说Java】Double/Zookeeper初识

    1什么是分布式系统?   在<分布式系统原理与范型>一书中有如下定义:"分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统":   分布式系统是由 ...

  2. 你的简历写了 “熟悉” zookeeper ?那这些你会吗?

    前言 本文主要分享一下zookeeper的一些基本概念,在正式进入正题前,和大家聊一聊刚入行时我的面试经验,可以说是耿直的有些可爱. 面试官:用过zookeeper 吗? 我:用过啊,给dubbo提供 ...

  3. 图解ZooKeeper!小学生也能看懂!

    一.什么是ZooKeeper 从上面我们也可以发现,好像哪都有ZooKeeper的身影,那什么是ZooKeeper呢?我们先去官网看看介绍: 官网对ZooKeeper的介绍 官网还有另一段话: Zoo ...

  4. 你好:Zookeeper

    Zookeeper 初识 初识Zookeeper Zookeeper 安装 Zookeeper 命令操作 Zookeeper数据模型 服务端命令 客户端命令 JavaAPI操作 Curator 常用操 ...

  5. 什么是ZooKeeper?

    上次写了一篇 什么是消息队列?以后,本来想入门一下Kafka的(装一下环境.看看Kafka一些概念啥的).后来发现Kafka用到了ZooKeeper,而我又对ZooKeeper不了解,所以想先来学学什 ...

  6. 初识Kafka-概念速览|安装与配置—《Kafka权威指南》笔记

    文章目录 初识Kafka 消息 批次 模式 主题与分区 生产者和消费者 broker和集群 保留消息 多集群 Kafka数据生态 安装与配置 安装 Java 安装 Zookeeper Zookeepe ...

  7. Zoookeeper 入门介绍

    上次写了一篇 什么是消息队列?以后,本来想入门一下Kafka的(装一下环境.看看Kafka一些概念啥的).后来发现Kafka用到了ZooKeeper,而我又对ZooKeeper不了解,所以想先来学学什 ...

  8. 初识Zookeeper

    在学习Zookeeper之前,我们需要了解分布式协调技术. 分布式协调技术作用: 解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止产生"脏数据". 分 ...

  9. 从《在小吃店遇见凯恩斯》初识经济

    最近在看<在小吃店遇见凯恩斯>这本书,算是对经济和经济学的初步认识. 那些概念 1. 经济与经济学 经济:经世济民,经营国家.救赎百姓,发展国家经济进步.促成人人致富. 经济学:研究发展国 ...

最新文章

  1. get占位符传多个参数_未知环境下的Lidar概率占位栅格图(Occupancy Grid Map) Python代码实现...
  2. LINUX设备驱动之设备模型一--kobject
  3. Sensors Data:初创公司构建数据分析平台
  4. nginx下rewrite规则中参数超过10 $10 解决方案
  5. 了解快照隔离和行版本控制
  6. 7-Arco大讲堂(二)
  7. 2009年02月《安全天下事》、2009年02月《安全天下事之12月,辩证法之月》、《2008信息安全技术与产业大盘点》...
  8. caffee安装 Windows10+vs2015+python3.7+CPU
  9. Adobe reader 添加注释后,点击保存,强制要求另存为
  10. android按钮半透明
  11. 排序(三)之快速排序 填坑法
  12. MySQL数据库知识大全
  13. 第一篇数模论文——估计出租车的总数
  14. 163邮箱登陆写信自动化脚本
  15. 软件测试 (4)Linux命令
  16. Pycharm配置(1)——解释器(interpreter)
  17. SAP Data Service操作简介
  18. 密西西比河谷州立大学:Android应用程序开发(五)
  19. 2所非211院校挺进全球高校600强,甩开一众985 | 泰晤士世界大学排行榜出炉
  20. 列表推导式-list comprehension

热门文章

  1. python猜拳小游戏实验报告_Java猜拳小游戏程序设计实验报告
  2. 【讲座】08 南水北调中线总干渠含引配水工程水动力耦合模拟研究
  3. CSS3边框、阴影及背景
  4. HTML5 video标签禁止下载
  5. android 打开闪光灯
  6. 报头压缩方案简介(初步)
  7. 抓包分析php一句话木马
  8. poj迷宫游戏c语言代码,ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)
  9. 金属摇滚录音混音教程|总想要好作品,前期制作你懂了多少?|MZD Studios
  10. 让程序在崩溃时体面的退出之Dump文件