Zookeeper来由
什么是Zookeeper?
官方定义:Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端 API。
为什么要有Zookeeper?
如果要问为什么要有Zookeeper,那么就要从分布式系统聊起:20世纪60年代,大型机被发明了出来,凭借自身的超强计算和I/O处理能力以及稳定、安全性,成为了世界的主流。但是大型机也有一些致命的问题,比如造价昂贵、操作复杂、单点问题等。特别是对大型机的人才的培养成本非常之高。随着这些问题的出现,不断影响了大型机的发展。而另一方面PC机性能的不断提升和网络普及,大家开始转向了使用小型机和普通的PC服务器来搭建分布式的计算机系统,来降级成本。而后分布式便不断火热起来。
那什么是分布式系统呢?
分布式系统是一个硬件或者软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通讯和协调的系统。它具有以下特点:分布性、对等性、并发性、缺乏全局时钟、故障总是会发生。分布式环境会有那些问题呢?
通讯异常、 网络分区(脑裂)、 三态 、节点故障分布式系统事务处理与数据一致性上有那些挑战?
a) ACID 原子性、一致性、隔离性、持久性
b) CAP 一致性、可用性、分区容错性
c) BASE 基本可用、软状态、最终一致性
d) 2PC和3PC
经过上面的种种的发展,Zookeeper作为Apache Hadoop的子项目发展起来,它为分布式应用提供了高效可靠的分布式协调服务。
Zookeeper来由相关推荐
- 使用Zookeeper共享锁和排它锁和分布式队列的原理和实现(ZkClient)
简介 当我们分布式系统中多个节点需要访问同一共享数据,就需要加一把分布式锁,因为如果是同一进程的线程的话,完全可以采用Java的同步锁实现,但是这是多进程间的锁,所以就需要一个协调者来协调进程间的通信 ...
- 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别
1. 什么是 KV 存储 KV 是 Key-Value 的缩写,KV 存储也叫键值对存储.简单来说,它是利用 Key 做索引来实现数据的存储.修改.查询和删除功能. 常用的高性能 KV 存储主要有 R ...
- kafka+zookeeper搭建步骤kafka问题
kafka+zookeeper搭建步骤 帅气的名称被占用关注 0.1392018.12.04 13:48:00字数 1,007阅读 88 vmware 安装centOS7 克隆虚拟为:三台 本地你的I ...
- ZooKeeper简单使用
ZooKeeper简单使用 ZooKeeper简单使用 1.ZooKeeper简介 2.ZooKeeper能做什么 3.ZooKeeper核心 3.1.ZooKeeper安装 3.2.ZooKeepe ...
- 2021年大数据ZooKeeper(六):ZooKeeper选举机制
目录 ZooKeeper选举机制 概念 全新集群选举 非全新集群选举 ZooKeeper选举机制 zookeeper默认的算法是FastLeaderElection,采用投票数大于半数则胜 ...
- 2021年大数据ZooKeeper(五):ZooKeeper Java API操作
目录 ZooKeeper Java API操作 引入maven坐标 节点的操作 ZooKeeper Java API操作 这里操作Zookeeper的JavaAPI使用的是一套zookeeper客户端 ...
- 2021年大数据ZooKeeper(四):ZooKeeper的shell操作
目录 ZooKeeper的shell操作 客户端连接 shell基本操作 操作命令 操作实例 节点属性 ZooKeeper Watcher(监听机制) Watch机制特点 ...
- 2021年大数据ZooKeeper(三):Zookeeper数据模型和节点类型
目录 Apache ZooKeeper Zookeeper数据模型 Zookeeper节点类型 Apache ZooKeeper Zookeeper数据模型 图中的每个节点称为一个Znode. 每个Z ...
- 2021年大数据ZooKeeper(二):ZooKeeper集群搭建
目录 ZooKeeper集群搭建 第一步:下载zookeeeper的压缩包,下载网址如下 第二步:解压 第三步:修改配置文件 第四步:添加myid配置 第五步:安装包分发并修改myid的 ...
最新文章
- Linux编程---线程
- MyBatis-Spring配置简单了解
- Java怎么学?Java的学习步骤分享
- Ubuntu一键安装LAMP环境
- 【C语言】第二章 信息编码与数据类型 题解
- 【PHP源码】二维码生成api
- 为什么要预留字段_PaperYY为什么会免费论文查重?
- php操作mysql常用_PHP常用MySql操作
- seekbar垂直放置_android GridLayout
- Easy RealMedia Producer使用向导
- 如何正确的寻找电影资源
- Java md5加密算法
- Linux虚拟机配置防火墙和软件安装限制
- 列表/字典生成式、生成器(generator)、迭代器(Iterator)
- 创立仅一年GMV突破3亿!这个新锐品牌如何在快手实现爆发?
- Vivado使用技巧(12):设置DCI与内部参考电压
- 云服务器+花生壳+xming+vscode环境搭建(云服务器运行程序,本地进行GUI显示)
- 第四章:数据存储-csv文件处理-读取csv文件的两种方式
- 使用计算机进入什么状态,装机过程中什么情况要进bios设置?
- 使用nodejs、express以及MySQL制作一个简单类淘宝的登录注册页面