Zookeeper入门学习--01介绍及安装
介绍Zookeeper
Zookeeper概述
官方地址 : https://Zookeeper.apache.org/releases.html
Zookeeper
,【
Zoo -
动物园,
Keeper - 管理员】动物园中有很多种动物,这里的动物就可以比作分布式环境下多种多样的服务,而
Zookeeper
做的就是管理这些服务。
Zookeeper
是用于分布式应用程序的高性能协调服务
,是
Apache Hadoop
的一个子项目,Zookeeper为分布式系统而生。Zookeeper 本质上是一个分布式的小文件存储系统【中间件】。它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。
上面的解释有点抽象,简单来说
Zookeeper=
文件系统
+
监听通知机制
。
Zookeeper 适用于存储和协同相关的关键数据,不适合用于大数据量存储。
什么是分布式?
集中式系统
集中式系统,集中式系统中整个项目就是一个独立的应用,整个应用也就是整个项目,所有的东西都在一个应用里面。部署到一个服务器上。
分布式系统
随着公司的发展,应用的客户变多,功能也日益完善,加了很多的功能,整个项目在一个tomcat上跑,tomcat说它也很累,能不能少跑点代码,这时候 就产生了分布式系统。我们可以把大项目按功能划分为很多的模块,比如说单独一个系统处理订单,一个处理用户登录,一个处理后台等等,然后每一个模块都单独在一个
tomcat
中跑,合起来就是一个完整的大项目,这样每一个
tomcat
都非常轻松。
分布式系统特点:
- 多台服务器构成
- 服务器之间通过网络进行通信
- 服务器彼此进行交互
- 服务器有个共同目标
Zookeeper的发展历程
雅虎的开发人员就开发了一个通用的无单点问题的分布式应用程序的高性能协调服务,这就是 Zookeeper
。
Zookeeper
之后在开源界被大量使用,很多著名开源项目都在使用
Zookeeper
,例如:
- Hadoop:使用Zookeeper 做Namenode 的高可用。
- HBase:保证集群中只有一个master,保存hbase:meta表的位置,保存集群中的RegionServer列表。
- Kafka:集群成员管理,controller 节点选举。
Zookeeper主要应用场景
1、注册中心 : 服务管理/治理
分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又便于人识别和记住,通常情况下用树形的名称结构是一个理想的选择,树形的名称结构是一个有层次的目录结构。通过调用Zookeeper
提供的创建节点的
API
,能够很容易创建一个全局唯一的
path
,这个path就可以作为一个名称。阿里巴巴集团开源的分布式服务框架
Dubbo
中使用
Zookeeper来作为其命名服务,维护全局的服务地址列表。
2
、配置中心
:
配置文件管理
数据发布
/
订阅即所谓的配置中心:发布者将数据发布到
Zookeeper一系列节点上面,订阅者进行数据订阅,当数据有变化时,可以及时得到数据的变化通知,达到
动态获取数据
的目的。
Zookeeper
采用的是
推拉结合
的方式
:
实现配置中心。
1
、推
:
服务端会推给注册了监控节点的客户端
Wathcer
事件通知
2
、拉
:
客户端获得通知后,然后主动到服务端拉取最新的数据
3
、分布式锁
:
多服务间的事务控制
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。
4
、分布式队列
: 12306
、秒杀商品,网上挂号,抢购
...
在传统的单进程编程中,我们使用队列来存储一些数据结构,用来在多线程之间共享或传递数据。分布式环境下,我们同样需要一个类似单进程队列的组件,用来实现跨进程、跨主机、跨网络的数据共享和数据传递,这就是我们的分布式队列。
Zookeeper环境搭建
前提
:
必须安装
jdk 1.8
,配置
jdk
环境变量
安装Zookeeper
1
、下载
下载地址:
http://Zookeeper.apache.org
查看
Zookeeper
的更新历史
Zookeeper
下载页的地址
2、解压
注意
:
解压到没有中文路径的目录下(一般选择根路径)
3、修改配置文件
在
Zookeeper
路径下创建一个
data
目录
修改配置文件
conf
路径中复制一份
zoo_sample.cfg,
改名为
zoo.cfg
指定保存数据的目录:
data
目录
4、启动Zookeeper
打开
bin
路径,双击
zkServer.cmd,
启动
Zookeeper
服务
5、启动客户端测试
启动客户端,看到
‘Welcome to Zookeeper!’
说明成功