1. Apache ZooKeeper快速课程入门
Tips
Tips做一个终身学习的人!
日拱一卒,功不唐捐。

在过去的几十年里,互联网改变了我们生活的方式。Internet上提供的服务通常由复杂的软件系统支持,这些系统跨越了大量的服务器,而且常常位于不同的地理位置上。这种系统被称为计算机科学术语中的分布式系统。为了正确和有效地运行这些大型系统,这些系统内部的过程应该彼此之间达成某种协议;本协议也称为分布式协调。构成分布式系统的组件所达成的协议包括分布式系统的总体目标或达成一些最终导致目标的子任务的协议。这并不像听起来那么简单,因为流程不仅要达成一致,而且要确定他们的对等组件所同意的内容。
虽然在一个大的分布式系统中协调任务和过程听起来很简单,但是当要以容错的方式正确地实现它们时,这是一个非常棘手的问题。Apache ZooKeeper是Apache软件基金会的一个项目,它旨在通过简单的api提供一组可靠的原语来解决分布式系统的设计和开发中的这些协调问题。
在本章中,我们将介绍下面的内容:
分布式系统是什么及其特点
为什么分布式系统中的协调是困难的
Apache ZooKeeper介绍
下载并安装Apache ZooKeeper
使用ZooKeeper shell连接到ZooKeeper
多节点 ZooKeeper集群配置
定义一个分布式系统
分布式系统被定义为一个由独立的计算实体组成的软件系统,由一个计算机网络连接在一起,它的组件相互通信并相互协调以实现一个共同的目标。电子邮件系统,如Gmail或Yahoo !邮件就是这样一个分布式系统的一个例子。另一个分布式系统的例子是一个多人在线游戏,玩家可以在不同的地理位置上玩。
为了确定分布式系统,以下是需要注意的关键特性:
- 资源共享:这指的是在系统中使用资源的可能性,例如存储空间、计算能力、数据和来自任何地方的服务,等等。
- 可扩展性:这是指从硬件和软件角度逐步扩展和改进系统的可能性
- 并发性:这指的是系统能够同时被多个用户使用,以完成相同的任务或不同的任务。
- 性能和可伸缩性:这确保系统的响应时间不会随着整体负载的增加而降低。
- 容错:这确保了系统总是可用,即使某些组件失败或以降级模式运行。
- 通过API的抽象:这确保系统的各个组件隐藏于最终用户,仅向他们提供最终服务。
要设计一个分布式系统是很困难的,当一个单独的计算实体的集合被程序化到一起时,它就更加困难了。设计师和开发人员经常做出一些假设,这些假设也被称为分布式计算的谬论。这些谬论的列表最初是由SUN 公司的工程师在研究网络文件系统Network File System(NFS)的初始设计时创造的。可以在以下表格中引用这些内容:
| 假设 | 现实 |
|---|---|
| 网络是可靠的 | 在现实中,由于系统内部错误或由于电源故障等外部因素,网络或组件之间的互连可能会失败。 |
| 零延迟 | 分布式系统的用户可以从全球任何地方连接到它,并且需要时间将数据从一个地方移动到另一个地方。网络的服务质量也影响应用程序的延迟。 |
| 带宽是无限的 | 网络带宽在最近已经改进了很多倍,但在世界范围内这并不是统一的。带宽取决于网络的类型(T1,LAN,WAN,移动网络,等等)。 |
| 网络是安全的 | 网络永远不安全。通常,系统面临拒绝服务攻击的可能,因为在他们的设计中没有认真考虑应用程序的安全方面的隐患。 |
| 拓扑结构不会改变 | 实际上,拓扑结构永远不是恒定。 组件随时间被移除/添加,系统应该能够容忍这种更改。 |
| 有一个管理员 | 分布式系统从不孤立地运行。它们与其他外部系统相互作用;这可能超出了管理的控制。 |
| 传输成本为零 | 这远不是真实的,因为到处都有成本,从建立网络到发送网络数据包到目的地。成本可以是CPU周期的形式,用来支付给网络服务提供商的实际美元。 |
| 网络是同质的 | 网络由大量不同的实体组成。因此,要使应用程序正确地运行,它需要与各种组件进行互操作,即网络、操作系统,甚至是实现语言。 |
分布式系统设计者必须设计出一套系统,以保持所有之前的要点。除此之外,解决的下一个棘手问题是让参与的计算实体,或者独立的程序,协调他们的活动。通常,开发人员和设计人员在实现这种协调逻辑时陷入困境;这导致系统设计不正确,效率低下。正是基于这个动机,Apache ZooKeeper被设计和开发出来,使得分布式协调非常可靠。
1. Apache ZooKeeper快速课程入门的更多相关文章
- zookeeper快速入门
一.zookeeper简介 zookeeper 是apache旗下的hadoop子项目,它一个开源的,分布式的服务协调器.同样通过zookeeper可以实现服务间的同步与配置维护.通常情况下,在分布式 ...
- Zookeeper 快速入门(上)
来源:holynull, blog.leanote.com/post/holynull/Zookeeper 如有好文章投稿,请点击 → 这里了解详情 Zookeeper是Hadoop分布式调度服务,用 ...
- ZooKeeper学习总结 第一篇:ZooKeeper快速入门
1. 概述 Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:配置服务.名字服务.分布式同步.组服务等. 它有如下的一些特点: 简单 Zookeeper的核 ...
- Apache Kafka 快速入门
概述 Apache Kafka是一个分布式发布-订阅消息系统和强大的队列,可以处理大量的数据,将消息从一个端点传递到另一个端点.Kafka适合离线和在线消息消费,Kafka消息保存在磁盘上,并在集群内 ...
- zookeeper 快速入门
分布式系统简介 在分布式系统中另一个需要解决的重要问题就是数据的复制.我们日常开发中,很多人会碰到一个问题:客户端C1更新了一个值K1由V1更新到V2.但是客户端C2无法立即读取到K的最新值.上面的例 ...
- springboot+dubbo基于zookeeper快速搭建一个demo
由于小编是在windows环境下搭建的,故该示例均为在windows下操作,这里只是提供一个快速搭建思路,linux操作也基本上差不多. 首先本示例的dubbo是基于zookeeper发布订阅消息的, ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
- ZooKeeper快速搭建
原文地址:http://nileader.blog.51cto.com/1381108/795230 下载PDF版本 本文是ZooKeeper的快速搭建,旨在帮助大家以最快的速度完成一个ZK集群的搭建 ...
- 3.Apache ZooKeeper数据模型
1. ZooKeeper自下向上的服务视图 Apache ZooKeeper是分布式应用程序的协调服务. 它旨在解决分布式应用程序中与组件协调相关的棘手问题. 它通过暴露一个简单而强大的接口来实现这一 ...
随机推荐
- 201521123104《JAVA程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出 ...
- linux crontab详解
服务的启动和停止 cron服务是linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond ...
- jstl-初步认知
JSTL是java提供的JSP标签库 1,在项目中加入 jsf-api.jar jsf-impl.jar jstl-1.2.jar 三个包 2, 如何在jsp页面引入标签库 使用 <@tagli ...
- hadoop2.0的数据副本存放策略
在hadoop2.0中,datanode数据副本存放磁盘选择策略有两种方式: 第一种是沿用hadoop1.0的磁盘目录轮询方式,实现类:RoundRobinVolumeChoosingPolicy.j ...
- RocketMQ之双Master方式部署以及简单使用
1.1.服务器环境 192.168.100.24 root nameServer1,brokerServer1 Master1 192.168.100.25 root nameServer2,brok ...
- Chrome控制台选择器简介
Chrome的控制台是支持用$来获取元素的,这点可能是很多人不知道的.本篇文章将会简单介绍怎样更好的来使用这种快捷方式来获取元素. 判断当前窗口的$是来自谁的 我们知道jQ里面经常使用$来进行元素选择 ...
- WEB中的敏感文件泄漏
文件泄露, 根据泄漏的信息敏感程度, 在WEB漏洞中可以算是中危甚至高危的漏洞, 本篇文章就来 介绍下一些常见的泄漏, 主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露. 版 ...
- Flex布局介绍
Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性 任何一个容器都可以指定为 Flex 布局. .box{ display: -web ...
- 【个人笔记】《知了堂》MySQL中的数据类型
MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节 范围(-128~127) smallint(m) 2个字节 范围(-32768~32767) ...
- css之outline实现圆角效果
对,你没有看错,outline也可以实现圆角,不过请先读完自然会知道结果: ============================================================== ...