使用Zookeeper已经有几年时间了,零零散散的积累了一些经验,但从未想过能写出一些列的文章分享出来。从今天起,计划持续更新关于Zookeeper相关的文章,从基本的搭建使用、原理分析、典型场景分析、引用案例及代码编写,甚至到后期的源代码分析,带领大家一步步的从入门到深入Zookeeper的使用,在这个过程中你会像我一样慢慢的喜欢上它。欢迎大家持续关注本人博客。

简介

如果你还处于单机时代,那么你将很少用到Zookeeper,很多更好的方案可以帮助你解决问题。一旦涉及到分布式应用,或许在每做一个决定的时候都要想一想,是否可以使用Zookeeper来实现。

Zookeeper是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题。下图列举了一些可能会遇到的场景。

特点

Zookeeper可以保证如下的分布式特性:

  • 顺序一致性
  • 原子性
  • 单一视图
  • 可靠性
  • 实时性

设计目标

目标一 简单的数据模型

Zookeeper使得分布式程序能够通过一个共享的、树形结构的名字空间来进行相互协调。组成这个树形结构的数据节点被称作ZNode,它们之间的层级关系就像文件系统的目录结构一样。

目标二 可以构建集群

也就是Zookeeper服务的可复制性。一般3-5台机器就可以构建一个Zookeeper的集群。只要确保一半以上的服务器能够正常工作,整个机器就能够正常对外服务。相互之间可以进行通信,在内存中维护当前服务器状态。客户可以与任意一台服务器建立TCP连接进行通信,当与此服务器连接断开之后,客户端会自动连接到集群中的其他服务器继续工作。

目标三 顺序访问

客户端的每一个更新请求Zookeeper都会分配一个全局唯一的递增编号,通过这个编号可以确保事物操作的先后顺序。

目标四 高性能

Zookeeper将全量数据存储于内存之中,并直接服务于客户端的所有非事物请求,因此在读操作的应用上优势更为明显。可以在千台服务器组成的读写比例大约为10:1的分布系统上表现优异。



(此图来自官网图片)

版本及官网

Zookeeper的官网地址:http://zookeeper.apache.org/

GitHub地址:https://github.com/apache/zookeeper

目前稳定版本为Release 3.4.9,以后的博客内容也以此版本为基础来讲解。

Zookeeper简介(一)的更多相关文章

  1. ZooKeeper简介

    本文中,我们将对ZooKeeper进行介绍.简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务. 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对Z ...

  2. Zookeeper简介与安装

    Zookeeper:A Distributed Coordination Service for Distributed Applications. 一.Zookeeper简介 众所周知,协同服务是分 ...

  3. Zookeeper简介与集群搭建

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  4. Zookeeper简介与集群搭建【转】

    Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...

  5. Zookeeper简介及单机、集群模式搭建

    1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...

  6. Zookeeper简介及使用

    一.Zookeeper简介 1.zookeeper简介 动物管理员 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调. 2.什么是ZooKeeper? ZooKee ...

  7. ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念

    一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...

  8. ZooKeeper系列(一)—— ZooKeeper 简介及核心概念

    一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...

  9. Zookeeper简介及安装(一)

    1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...

  10. 第1章 分布式系统概念与ZooKeeper简介

    ZooKeeper分布式专题与Dubbo微服务入门 第1章 分布式系统概念与ZooKeeper简介 1-1 zookeeper简介 1-2 什么是分布式系统 略 1-3 分布式系统的瓶颈以及zk的相关 ...

随机推荐

  1. 利用Screen重启DevStack服务

    上篇介绍了DevStack如何安装部署.集成化工具有好处,但在系统重启后,OpenStack的各个服务并不会随系统重启而启动,需要利用screen来重启,接下来就记录下如何使用screen. 准备工作 ...

  2. Omnibus test

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  3. Css的前世今生

    Css的基础知识扫盲 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. HTML的用法没有什么技巧,就是死记硬背,当然你不需要都记下来,能记住20个常用的标签基本上就OK了,其他不常用 ...

  4. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  5. ASP.NET MVC中的Session设置

    最近在ASP.NET MVC项目中碰到这样的情况:在一个controller中设置了Session,但在另一个controller的构造函数中无法获取该Session,会报"System.N ...

  6. [C++]指针与引用(应用辨析)

    1.指针变量允许将一个整数经强制转换后赋值给指针变量    Eg:      float *fp;      fp = (float *)5000;//意义:将5000作为一个地址赋给指针变量fp 2 ...

  7. android studio 清空缓存插件

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0308/4036.html 一个提高开发效率的ADB插件:ADB IDEA 泡在 ...

  8. Hadoop的RPC机制及简单实现

    1.RPC简介 Remote Procedure Call 远程过程调用协议 RPC——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.RPC协议假定某些 ...

  9. POI导出带格式的Excel模板——(六)

    Jar包

  10. np.savetxt()——将array保存到txt文件,并保持原格式

    问题:1.如何将array保存到txt文件中?2.如何将存到txt文件中的数据读出为ndarray类型? 需求:科学计算中,往往需要将运算结果(array类型)保存到本地,以便进行后续的数据分析. 解 ...