zookeeper基础学习-简介
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基础学习-简介的更多相关文章
- Node.js系列基础学习----安装,实现Hello World, REPL
Node.js基础学习 简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一 ...
- AspectJ基础学习之一简介(转载)
AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客 Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...
- 【JAVAWEB学习笔记】26_Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装
Linux基础 学习目标 1.了解Linux的简介与安装 2.掌握Linux常用的命令 3.掌握Linux系统上JDK.Mysql.Tomcat的安装 一.Linux的简介 1.Linux的概述 Li ...
- 《零基础学习Python制作ArcGIS自定义工具》课程简介
Python for ArcGIS Python for ArcGIS是借助Python语言实现ArcGIS自动化行为的综合,它不止是如课程标题所述的“制作ArcGIS自定义工具”,还包括使用Pyth ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- XML 参考:XML基础 XML 简介
XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...
- Yaf零基础学习总结2-Yaf框架的安装
接着上一篇文章<Yaf零基础学习总结1-Yaf框架简介>我们对Yaf框架有那么一个大概的了解了,但是对于程序员来说,那些文字都是表面的,他们最想的就是开始敲代码了.当然这也是学习Yaf框架 ...
- ZooKeeper快速学习
"一入Java深似海",过去自身对于分布式的接触,始终处于使用别人构建的框架的水平,最多就是在nginx配置一下第4层的负载均衡(最后有介绍).随着java使用深入,本文将重点理解 ...
随机推荐
- Spring MVC 增加静态资源配置mvc:resources跳转不了链接
在使用mvc:resources 要配合 <mvc:annotation-driven/> 一起
- Header函数和PHP_AUTH_USER做用户验证(转载)
php Header PHP_AUTH_USER PHP_AUTH_PW 用户验证 在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能.具体用法: Header( ...
- Image图片
# View more python tutorials on my Youtube and Youku channel!!! # Youtube video tutorial: https://ww ...
- CentOS7安装Ceph
CentOS 7 下安装Ceph-nautilus 本问主要记录在CentOS 7下如何安装Ceph-nautilus,安装过程中遇到的一些问题及解决方法. 实验准备 以下是本次实验所用到的机器(采用 ...
- python调用adb命令进行手机操作
Python中执行cmd命令可以用到os和subprocess两个模块. 区别在于os是阻塞式的,subprocess是非阻塞式的,所以一般我们使用subprocess是比较适合的. 接下来我先举一个 ...
- github hexo配置踩过的坑
大体步骤:配置npm,在github中增加自己的sshkey. 多sshkey的话在用户主目录的.ssh中要配置好. 删除仓库里面 source/_posts/我的文章.md 执行下面命令更新博客 h ...
- 用新架构适配MI3中遇到的各种坑
用新架构适配MI3中遇到的各种坑 首先不得不说hendy架构的强大之处, mi3也直接开机但是遇到各种坑,不能怪架构不够强大,只有说miui定制化太高.下面详细说一下mi3适配中的各种坑.有些坑会附带 ...
- 新浪微博PC端登录分析
本来给自己定了个2018的目标,平均每月写两篇文章,现在已经快三月了,第一篇稿子才憋出来,惭愧呀,直入主题吧,今天给大家带来的是新浪微博PC端的模拟登陆. 工具 这次使用的工具是Charles和chr ...
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- js数据类型大全
声明变量的命名规范(标识符) 1.不能以数字开头,只能以字母或者¥或者_开头 2.js变量名称区分大小写 3.变量名不能含有关键字(this.if.for.while) 4.驼峰命名法 console ...