Zookeeper——Zookeeper是什么
Zookeeper——Zookeeper是什么
一、Zookeeper是什么?
1.Zookeeper是一个数据库:
-
Zookeeper是可以存数据的,Zookeeper数据库里的数据节点分为:持久化节点和临时节点
- create命令创建节点:create /节点 内容
- delete命令删除节点:delete /节点 内容
- get命令获取节点内容:get /节点
-
Zookeeper是一个拥有文件系统特点的数据库(树形的结构)
-
Zookeeper是一个解决了数据一致性问题的分布式数据库
-
Zookeeper是一个具有发布和订阅功能的分布式数据库(Watch)
2.Zookeeper是一个分布式服务框架(中间件)
- Zookeeper是一个分布式服务框架,是Apach Hadoop的一个子项目,他主要是用来解决分布式应用中常用到的一些数据管理问题,如:统一命名服务,集群管理,分布式应用配置项的管理
- ZK端口号:2181
- 作用于分布式系统,提供了Java和C语言的客户端接口API
二、分布式系统
1.什么是分布式系统
- 很多计算机组成的一个整体,一个整体一致对外并处理同一个请求
- 内部每台计算机都是可以相互通讯的(RPC/RESTful)
分布式系统的意思就是将原有的系统按照自己的业务需求进行拆分(模块化),拆分成一个一个的子系统,也就是拆分成不同的服务,然后将不同的服务组成集群。这样一个面向服务的开发就是微服务
- 这样做的好处:因为用户的请求会分到不同的系统中去,所以集群的负载会提高
2.分布式系统的瓶颈
当某一个时间段的用户访问量非常多的时候,为了方式并发的错误,我们就只能按照先来的先走的这种作法实现同步,这样才能实现数据的一致性,也就是分布式锁的作用。
三、Zookeeper
1.1 Zookeepe的概述
1.2 Zookeeper的特性
1.3 Zookeeper的集群角色
Leader:领导者
- 响应事务性请求(增删改)
Foolower:跟随着
- 响应非事务性请求(查询)
- 转发事务请求给Leader
- 参与集群Leader选举投票
Oberver:观察者
- 观察集群最新的状态并且实时同步
- 集群横向扩展,自定义Oberver
- 处理非事务请求
- 转发事务性请求给Leader
- 不参与集群Leader选举投票
1.4 Zookeeper集群搭建(了解)
- 一般选取奇数台服务器搭建集群:为了迎合选举Leader半数通过