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使用深入,本文将重点理解 ...
随机推荐
- <JZOJ4269>挑竹签
emm一开始将++cnt敲成cnt++ 就很委屈 一个拓扑排序而已 Description 挑竹签——小时候的游戏 夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏.挑竹签,就是在桌上摆上一把竹签 ...
- Docker容器时间同步问题
具体操作: 为了保证容器和宿主机之间的时间同步,采用如下参数:-v /etc/localtime:/etc/localtime:ro但是在页面访问的时候时间依然相差8个小时: 该怎么破解! 回复: 1 ...
- 从谷歌到脸书:为何巨头纷纷“钟情于”VR相机?
VR的火爆,自然无需多言.而基于VR这一个概念,已经在多个相关行业不断衍生出新的产品.服务或内容.VR眼镜.VR头盔.VR相机.VR游戏.VR影视.VR应用--但VR产业的发展并不是齐头并进,而是出现 ...
- 百度地图API:使用百度定位
准备工作: 1.申请百度地图API 2.下载百度地图的SDK 3.将SDK包中的BaiduLBS_Android.jar文件放到,项目里的app/libs里面 4.在src/main目录下创建一个名为 ...
- 93-time模块
目录 time模块 一.time模块 1.1 时间戳 1.2 格式化时间 1.3 结构化时间 1.4 不同格式时间之间的转换 1.5 其它用法 time模块 一.time模块 import time ...
- sql -- 多表关联,update(用户奖励)
表设计: users_buy: users_score: 需求: 1.根据用户分组,找出用户消费最高的金额 select user_name, max(paymoney) as pm from use ...
- 2018 C笔试题
⼀.单项选择题(15⼩题,每⼩题2分,共30分) 解析:[传值调用],实参和形参之间传递的是“地址” 解析:[优先级]:算术运算符 > 关系运算符 > 赋值运算符 [结核性 ...
- 某图片站反爬加密字段x-api-key破解
前言 此次逆向的是某“你们都懂”领域的图片站,目前此站限制注册,非会员无法访问:前两天偶然搞到了份邀请码,进入后发现质量还可以,于是尝试爬取,在爬虫编写过程中发现此站点采用了不少手段来阻止自动化脚本( ...
- 原本准备的 event loop 分享
基础介绍 Stack 栈 一种先入后出的数据结构. 两个基本操作: 推入,弹出 Queue 队列 一种先入先出的数据结构 操作: 入队,出队 两种任务: 同步任务,异步任务 同步任务: 在调用栈中等待 ...
- Markdown 语法简要规则
Markdown简介 Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简 ...