1.zookeeper的使命

zookeeper可以在分布式系统的协作多个任务(一个任务是指一个包含多个进程的任务),这个任务可以是为了协作或者是为了管理竞争。

协作:多个进程需要一同处理某些事情,一些进程采取某些行动让其他进程继续工作。例:主-从工作模式中主节点将任务分配给其他的从节点。

竞争:指两个进程不能同时处理工作,一个进程必须等待其他节点。例:主-从工作模式中主节点只有一个,其他从节点只能等主节点崩溃后才能成为主节点,这就需要实现互斥排他锁,我们可以理解为成为主节点的过程就是要获取主节点控制锁的过程。

2.zookeeper api功能

(1)保障强一致性,有序性和持久性。

(2)实现通用的同步原语的能力。

(3)在实现分布式系统中,并发往往导致不正确的行为,zookeeper提供了一种简单的并发处理机制。

3.zookeeper不适用的场景

海量数据存储----我们可以使用数据库或者分布式文件系统等。

4.分布式系统中等进程通信有两种选择:(1)直接通过网络进行信息交换 (2)读写某些共享存储,zookeeper使用共享存储模型来实现应用间的协作和同步原语,而对于共享存储本身,又需要在进程和存储间进行网络通信。

5.注意的问题

(1)消息延迟

消息传输可以会发生任意延迟,比如网络拥堵。

(2)处理器性能

操作系统的调度和超载可能导致消息处理的任意延迟。

(3)时钟偏移

确定某一事件系统中发生哪些事件,处理器的时钟不可靠,他们之间会发生任意偏移。

6.主-从

主节点服务器负责跟踪从节点是否可用,并分派任务到从节点。

从节点服务器负责完成任务。

(1)主节点崩溃

如果主节点发送错误并失效,系统将无法分配新的任务货重新分配已失败的任务。

解决办法:我们需要一个备份主节点,当主节点崩溃是,备份主节点通过zookeeper来恢复已崩溃主节点的状态,但是这也不是万能的,如果主节点负载过高,导致信息任意延迟或者网络分区错误导致都会导致备份主节点与主节点(未崩溃)同时工作,产生脑裂现象。

(2)从节点崩溃

如果从节点崩溃,已分配的任务将无法完成。

解决办法:让主节点具有检查从节点的崩溃能力,并且还要执行某些恢复过程来清除之前状态。

(3)通信故障

如果主节点和从节点之间无法进行信息交换,从节点将无法得知新任务分配给他。

解决办法:首先客户端可以告诉zookeeper某些数据的状态是临时状态,其次,zookeeper需要向客户端定时发送是否存活的通知,如果一个客户端未能即使发送通知,那么所有从属于这个客户端的临时状态数据将全部删除。

7.zookeeper命名的由来

zookeeper是由雅虎研究院开发,zookeeper研究小组参加来很多以动物命名的项目,分布式项目就像一个动物园,zookeeper就是为了将一切变为可控的

zookeeper基础学习-简介的更多相关文章

  1. Node.js系列基础学习----安装,实现Hello World, REPL

    Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...

  2. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  3. 【JAVAWEB学习笔记】26_Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装

    Linux基础 学习目标 1.了解Linux的简介与安装 2.掌握Linux常用的命令 3.掌握Linux系统上JDK.Mysql.Tomcat的安装 一.Linux的简介 1.Linux的概述 Li ...

  4. 《零基础学习Python制作ArcGIS自定义工具》课程简介

    Python for ArcGIS Python for ArcGIS是借助Python语言实现ArcGIS自动化行为的综合,它不止是如课程标题所述的“制作ArcGIS自定义工具”,还包括使用Pyth ...

  5. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  6. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  7. XML 参考:XML基础 XML 简介

    XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...

  8. Yaf零基础学习总结2-Yaf框架的安装

    接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...

  9. ZooKeeper快速学习

    "一入Java深似海",过去自身对于分布式的接触,始终处于使用别人构建的框架的水平,最多就是在nginx配置一下第4层的负载均衡(最后有介绍).随着java使用深入,本文将重点理解 ...

随机推荐

  1. Mybatis--Statement Builders

    SelectBuilder 的秘密 SelectBuilder 类并不神奇, 如果你不了解它的工作机制也不会有什么好的作用. 别犹豫, 让我们来看看它是怎么工作的. SelectBuilder 使用了 ...

  2. 云服务器之——Linux下配置JDK环境

    在Linux下jdk的安装已经操作了很多次,每次发现自己还是会忘记之前的操作,所以今天就简单的来做个记录. 第一步:下载jdk安装包 登录oracle官网:https://www.oracle.com ...

  3. 纯js文件弹出窗写法

    <dialog id="myDialog"> 01234567890 <a href="javascript:;" id="clos ...

  4. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(11.2)- FlexSPI NOR连接方式大全(RT1060/1064(SIP))

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1060/1064(SIP)两款MCU的FlexSPI NOR启动的连接方式. 上一篇文章<FlexSPI N ...

  5. C++ 迷宫寻路问题

    迷宫寻路应该是栈结构的一个非常经典的应用了, 最近看数据结构算法应用时看到了这个问题, 想起来在校求学时参加算法竞赛有遇到过相关问题, 感觉十分亲切, 在此求解并分享过程, 如有疏漏, 欢迎指正 问题 ...

  6. 简单说 JavaScript中的tostring( ) 与 valueOf( )方法

    说明 所有的对象都继承有toString() 和 valueOf() 方法,对象到字符串,对象到数字的转换,会通过调用待转换对象的这两个方法中的一个来完成. 解释 toString( )方法的作用是: ...

  7. 《高性能javascript》阅读摘要

    最近在阅读这本Nicholas C.Zakas(javascript高级程序设计作者)写的最佳实践.性能优化类的书.记录下主要知识. 加载和执行 脚本位置 放在<head>中的javasc ...

  8. 小程序Echarts 构建中国地图并锚定区域点击事件

    小程序Echarts 构建中国地图并锚定区域点击事件 Step1 效果展示 使用的绘图框架为 Echarts for Wexin 具体API文档地址请点击 ----> Step2 条件准备 1. ...

  9. 基于springcloud搭建项目-Ribbon篇(三)

    这篇文章主要是介绍一下ribbon的用法,我们都知道ribbon是负载均衡,但是却不知道他是怎么样的负载均衡,怎么用,能干嘛? ● 其实,简单的说,Spring Cloud Ribbon是基于Netf ...

  10. 教妹学Java:Spring 入门篇

    你好呀,我是沉默王二,一个和黄家驹一样身高,刘德华一样颜值的程序员(管你信不信呢).从两位偶像的年纪上,你就可以断定我的码龄至少在 10 年以上,但实话实说,我一直坚信自己只有 18 岁,因为我有一颗 ...