Zookeeper介绍
- 中间件,提供协调服务
- 作用于分布式系统,可以为大数据服务
- 支持java和C语言
Zookeeper特性
- 一致性:数据一致性,数据按照顺序分批入库
- 原子性:事务要么成功要么失败,不会局部化
- 单一视图:客户端连接集群中的任一zk节点,数据都是一致的
- 可靠性:每次对zk的操作状态都会保存在服务端
- 实时性:客户端可以读取到zk服务端的最新数据
Zookeeper的作用
- master节点选举,主节点挂了,从节点会接受工作,保证这个节点是唯一的,保证集群高可用
- 统一配置文件管理,只需要部署一台服务器,则可以把相同的配置文件同步更新到其他服务器。
- 发布与订阅,类型消息队列,dubbo发布者把数据存储在znode上,订阅者会读取到这个数据
- 提供分布式锁
- 集群管理,保证集群中数据的强一致性
Zookeeper下载和配置
1.下载zk并进行解压,下载地址:https://downloads.apache.org/zookeeper/
2.配置环境变量
sudo vim ~/.bash_profile
打开后写入:
# zookeeper
export ZK_HOME=解压zk目录路径
PATH=${ZK_HOME}/bin3.复制一份conf目录下的zoo_sample.cfg改名为zoo.cfg,配置说明如下:
# 服务器与客户端之间交互的基本时间单元(ms)
tickTime=2000
# zookeeper所能接受的客户端数量
initLimit=10
# 服务器和客户端之间请求和应答之间的时间间隔(心跳机制)
syncLimit=5
# zookeeper中使用的基本时间单位, 毫秒值.
tickTime=2000
# 数据目录. 可以是任意目录.(必须配置)
dataDir=zk根目录/data
# log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和#dataDir相同的设置.
dataLogDir=zk根目录/log
# t监听client连接的端口号.
clientPort=2181如果根目录没有data和log目录,则手动进行创建。
4.启动zk
#启动zk
zkServer.sh start
#查看状态
zkServer.sh status5.通过zkCli.sh进入控制台
Zookeeper目录结构介绍
- bin:主要的运行命令
- conf:存放配置文件
- contrib:附加功能
- dist-maven:mvn编译后目录
- docs:文档
- lib:需要依赖的jar包
- recipes:案例demo代码
- src:源码
版权声明:本文为zhou6282610原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。