• 应对场景:

  相对于开发在一台计算机上运行的单个程序,如何让一个应用中的多个独立的程序协同工作是一件非常困难的事情。开发这样的应用,很容易让很多开发人员陷入如何使多个程序协同工作的逻辑中,最后导致没有时间更好地思考和实现他们自己的应用程序逻辑;又或者开发人员对系统逻辑关注不够,只是用很少的时间开发了一个简单脆弱的主协调器,导致不可靠的单一失效点。

  • ZooKeeper使命:

  在分布式系统中协作多个任务。一个协作任务指一个包含多个进程的任务。这个任务可以是为了协作或者是为了管理竞争。协作意味着多个进程需要一同处理某些事情,一些进程采取某些行动是的其他进程可以继续工作。比如,在典型的主-从工作模式中,从节点处于空闲状态时会通知主节点可以接受工作,于是主节点就会分配任务给从节点。竞争则不同,它指的是两个进程不能同时处理工作的情况,一个进程必须等待另一个进程。

  • ZooKeeper工作方式

  提供某种有序共享存储的组件

  • 示例:主-从应用

一般在这种架构中,主节点进程负责跟踪从节点状态和任务的有效性,并分配任务到从节点。

1、主节点崩溃

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

  主节点崩溃,我们需要有一个备份主节点。备份主节点接管主要主节点的角色,进行故障转移,新的主要主节点需要能够恢复到旧的主要主节点崩溃时的状态。对于主节点状态的可恢复性,可以通过ZooKeeper获取。

  状态恢复并不是唯一的重要问题。假如主节点有效,备份节点却认为主节点已崩溃。如主节点负载过高,告知消息任意延迟,备份主节点将会接管成为主要主节点,执行必要的程序,最终可能以主节点的角色开始执行,成为第二个主节点。

  此情况成为“脑裂”:系统中两个或多个部分开始独立工作,导致整体行为不一致。

2、从节点崩溃

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

3、通信故障

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

  • 任务总结

1、主节点选取

  主节点可以分配任务给从节点

2、崩溃检测

  主节点必须具有检测从节点崩溃或失去连接的能力

3、组成员关系维护

  主节点必须具有指导哪一个从节点可以执行任务的能力

3、元数据管理

  主节点和从节点必须具有通过某种可靠的方式来保存和分配状态和执行状态的能力

zookeeper_01:zookeeper概述的更多相关文章

  1. ZooKeeper概述

    1.Zookeeper概述 Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务.它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置 ...

  2. Zookeeper概述和基本概念

    一.Zookeeper背景 随着互联网技术的发展,企业对计算机系统的计算,存储能力要求越来越高,各大IT企业都在追求高并发,海量存储的极致,在这样的背景下,单纯依靠少量高性能单机来完成计算机,云计算的 ...

  3. ZooKeeper概述与安装

    ZooKeeper笔记 ZooKeeper概述 背景: 现代企业对计算机系统的计算存储能力要求越来越高,单纯的高性能服务器已经无法满足要求.企业的IT架构从集中式向分布式过度. 所谓分布式,就是将一个 ...

  4. Zookeeper概述、特点、数据模型

    Zookeeper 1.Zookeeper概述 Zookeeper是一个工具,可以实现集群中的分布式协调服务. 所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作.   Zo ...

  5. 大数据之Zookeeper概述

    Zookeeper概述 Zookeeper是一个开放源码的分布式应用程序协调服务,是 Google的Chubby一个开源的实现,是 Hadoop和 HBASE的重要组件.主要解决分布式应用一致性问题. ...

  6. 分布式技术-Zookeeper概述

    概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目 在大数据技术生态圈中,zookeeper(动物管理员),Hadoop(大象),Hive(蜜蜂),Pig(猪) ...

  7. ZooKeeper概述(转)

    译自http://zookeeper.apache.org/doc/trunk/zookeeperOver.html ZooKeeper是一个用于分布式应用的开源分布式协调服务.它提供了简单的原语集合 ...

  8. zk系列-zookeeper概述

    接触zk是2年前了,最近工作又比较依赖于zk,所以准备起个系列文章,系统的总结下. zookeeper是一个分布式的用于协调的服务,起源于Hadoop中的一个组件.分布式系统可以用zookeeper实 ...

  9. 十四、Hadoop学习笔记————Zookeeper概述与基本概念

    顺序一致性:严格按照顺序在zookeeper上执行 原子性:所有事物请求的结果,在整个集群的应用情况一致 单一视图:无论从哪个服务器进入集群,看到的东西都是一致的 可靠性:服务端成功响应后,状态会 一 ...

随机推荐

  1. Sqlserver 系列(一):常用函数

    (1)聚合函数 sum,max,min,avg,count (2)日期函数 datediff ,dateadd, datepart,getdate,month,day (3)字符串函数 ltrim,r ...

  2. Winform中子线程访问界面控件时被阻塞解决方案

    public partial class WebData_Import : Form { //声明用于访问主界面的委托类型 public delegate void deleGetOrderdata( ...

  3. iOS开发~视图(UIView)与控件(UIControl)

    1.UIView类 1.什么是视图 看得见的都是视图 2.什么是控件 一种特殊的视图,都是UIControl的子类,不仅具有一定的显示外观,还能响应高级事件,与用户交互.严格意义上UILabel不是控 ...

  4. Xcode no visible @interface for xxx declares the selector errors

  5. java web移植 遇到Project facet Java version 1.7 is not supported

    在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其 ...

  6. 17款提高编程效率的css工具

    参看下面链接:<17款提高编程效率的css工具>

  7. date用法

    日常工作中经常使用date这个命令,几乎所有与日期时间相关的操作都会跟这个命令扯上点关系.简单写几条经常使用到的date命令,仅供大家参考. 首先检查一下date的版本,注意如果你用的不是GNU da ...

  8. mysql create routine 权限的一些说明

    1.如果用户有create routine 权限那么他就可以创建procedure | function . 2.如果用户创建了procedure | function 那么mysql 会自动赋予它对 ...

  9. 如何在WPF程序中使用ArcGIS Engine的控件

    原文 http://www.gisall.com/html/47/122747-4038.html WPF(Windows Presentation Foundation)是美国微软公司推出.NET ...

  10. scheme 模拟queue

    [code 1] shows a implementation of queue. The function enqueue! returns a queue in that the obj is a ...