Zookeeper简介(一)
使用Zookeeper已经有几年时间了,零零散散的积累了一些经验,但从未想过能写出一些列的文章分享出来。从今天起,计划持续更新关于Zookeeper相关的文章,从基本的搭建使用、原理分析、典型场景分析、引用案例及代码编写,甚至到后期的源代码分析,带领大家一步步的从入门到深入Zookeeper的使用,在这个过程中你会像我一样慢慢的喜欢上它。欢迎大家持续关注本人博客。
简介
如果你还处于单机时代,那么你将很少用到Zookeeper,很多更好的方案可以帮助你解决问题。一旦涉及到分布式应用,或许在每做一个决定的时候都要想一想,是否可以使用Zookeeper来实现。
Zookeeper是Apache Hadoop的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题。下图列举了一些可能会遇到的场景。
特点
Zookeeper可以保证如下的分布式特性:
- 顺序一致性
- 原子性
- 单一视图
- 可靠性
- 实时性
设计目标
目标一 简单的数据模型
Zookeeper使得分布式程序能够通过一个共享的、树形结构的名字空间来进行相互协调。组成这个树形结构的数据节点被称作ZNode,它们之间的层级关系就像文件系统的目录结构一样。
目标二 可以构建集群
也就是Zookeeper服务的可复制性。一般3-5台机器就可以构建一个Zookeeper的集群。只要确保一半以上的服务器能够正常工作,整个机器就能够正常对外服务。相互之间可以进行通信,在内存中维护当前服务器状态。客户可以与任意一台服务器建立TCP连接进行通信,当与此服务器连接断开之后,客户端会自动连接到集群中的其他服务器继续工作。
目标三 顺序访问
客户端的每一个更新请求Zookeeper都会分配一个全局唯一的递增编号,通过这个编号可以确保事物操作的先后顺序。
目标四 高性能
Zookeeper将全量数据存储于内存之中,并直接服务于客户端的所有非事物请求,因此在读操作的应用上优势更为明显。可以在千台服务器组成的读写比例大约为10:1的分布系统上表现优异。
(此图来自官网图片)
版本及官网
Zookeeper的官网地址:http://zookeeper.apache.org/
GitHub地址:https://github.com/apache/zookeeper
目前稳定版本为Release 3.4.9,以后的博客内容也以此版本为基础来讲解。
Zookeeper简介(一)的更多相关文章
- ZooKeeper简介
本文中,我们将对ZooKeeper进行介绍.简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务. 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对Z ...
- Zookeeper简介与安装
Zookeeper:A Distributed Coordination Service for Distributed Applications. 一.Zookeeper简介 众所周知,协同服务是分 ...
- Zookeeper简介与集群搭建
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介及单机、集群模式搭建
1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...
- Zookeeper简介及使用
一.Zookeeper简介 1.zookeeper简介 动物管理员 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调. 2.什么是ZooKeeper? ZooKee ...
- ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念
一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...
- ZooKeeper系列(一)—— ZooKeeper 简介及核心概念
一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...
- Zookeeper简介及安装(一)
1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...
- 第1章 分布式系统概念与ZooKeeper简介
ZooKeeper分布式专题与Dubbo微服务入门 第1章 分布式系统概念与ZooKeeper简介 1-1 zookeeper简介 1-2 什么是分布式系统 略 1-3 分布式系统的瓶颈以及zk的相关 ...
随机推荐
- Tomcat部署实战
Tomcat部署实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.登录官网下载tomcat软件包(http://tomcat.apache.org/) 1>.在安装to ...
- shell if [[ ]]的一次应用
直接上代码 #!/bin/bash A="$1" if [[ "$A" == a* ]];then echo "aaa" else echo ...
- Python基础【day03】:集合进阶(四)
本节内容 1.关系测试(特殊符号) 1.交集2.并集3.差集4.对称差集5.是否是子集6.是否是父集 2.基本操作 1.add2.update3.remove VS pop vs discard4.l ...
- DOM-Document对象
一. 整体介绍 这里介绍DOM对象中的Document对象. 何为Document对象?每个载入浏览器的HTML文档都会成为Document对象,Document对象可以帮助我们对所有的HTML ...
- u-boot移植(十三)---代码修改---裁剪及环境变量 二
一.错误处理 上一节遇到一个错误: print一下: 发现我们在jz2440.h中静态写的网络参数都没有写进去. dm9000 address not set. dm9000的地址未设置. 这里对应两 ...
- C# http get与post请求方法
public class HttpTools { public static string GetRequest(string url) { HttpWebRequest request = (Htt ...
- Java EE之Hibernate的HibernateSessionFactory
昨天,一下午都被一个bug缠身,最后逐层排查,发现是MyEclipse 2014自动生成的HibernateSessionFactory有问题.后观察网友提供的自动生成的HibernateSessio ...
- django错误笔记——TypeError: view must be a callable or a list/tuple in the case of include().解决办法
django增加用户认证模块时,总是提醒模块的url.py中 url(r'^login/$', 'django.contrib.auth.views.login', name='login'),出错: ...
- 寻路优化(一)——二维地图上A*启发函数的设计探索
工作中需要优化A*算法,研究了一天,最后取得了不错的效果.看网上的朋友还没有相关的研究,特此记录一下.有错误欢迎大家批评指正.如需转载请注明出处,http://www.cnblogs.com/Leon ...
- H.264 SVC
视频厂商POLYCOM,VIDYO和RADVISION等都推出H.264 SVC技术.针对H.264 SVC技术做个介绍. CISCO和POLYCOM都提供了免版税的H.264 SVC的版本. 其中o ...