SpringCloud----zookeeper介绍与安装
2023-03-14 22:40:47 时间
zookeeper
概述
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
工作机制
zookeeper特点
- Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
- 集群中只要有
半数以上节点存活
,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器
- 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
- 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
- 数据更新原子性,一次数据更新要么成功,要么失败。
- 实时性,在一定时间范围内,Client能读到最新数据
数据结构
统一命名服务
Zookeeper可以把多台服务器的ip地址映射到同一个域名上
统一配置管理
统一集群管理
服务器动态上下线
软负载均衡
zookeeper下载
zookeeper 3.5.7版本是较稳定版本
下载 Linux 环境安装的 tar 包
Zookeeper 本地安装
(1)安装 JDK
具体安装教程百度
大家可通过下面五条命令来查看linux 系统是否安装了java 环境
1、java -version
2、which java
3、rpm -qa |grep java
4、echo $PATH
5、find / -name java
(2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
这里使用xftp进行传输
(3)解压到指定目录
我这里解压到了/opt目录下面的zookeeper文件夹中
解压指令:
tar -zxvf xxx.tar.gz -C 解压到的目录的路径 (否则会在当前路径下解压)
(4)修改名称
mv apache-zookeeper-3.5.7 zookeeper-3.5.7
配置文件修改
首先来到zookeeper解压后文件底下的conf目录
(1)将zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
mv zoo_sample.cfg zoo.cfg
(2)打开 zoo.cfg 文件,修改 dataDir 路径
这里我选择在与conf同级目录下面新建一个zkData目录,用来替代默认的dataDir路径
采坑实录: 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
zookeeper 启动时一直报 Starting zookeeper … FAILED TO START
./zkServer.sh start-foreground
这样启动就知道错误原因了
错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
zookeeper 启动时一直报 Starting zookeeper … FAILED TO START
操作 Zookeeper
1.启动 Zookeeper服务端
先启动Zookeeper服务端,再启动Zookeeper客户端进行访问
来到bin目录下,执行命令:
./zkServer.sh start
查看进程是否启动,jps是java jdk里面的命令,一个查看当前java进程的小工具,
[atguigu@hadoop102 zookeeper-3.5.7]# jps
4020 Jps
4001 QuorumPeerMain
2.查看状态
./zkServer.sh status
3.启动zookeeper客户端
./zkCli.sh
4.退出客户端
quit
5.停止 Zookeeper
./zkServer.sh stop
配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
这里指客户端与服务端之间距离多长时间发送一次信号,检验当前连接是否还生效
当然服务端与服务端之间也可以发送信号,检验彼此存活状态
2)initLimit = 10:LF初始通信时限
这里的10指的是10此心跳,而每次心跳默认是2秒钟,因此这里如果20秒内还没连接成功,那么这次连接默认失败
3)syncLimit = 5:LF同步通信时限
4)dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
5)clientPort = 2181:客户端连接端口,通常不做修改。
相关文章
- PostgreSQL连接PHP
- PHP开发者应了解的24个库
- C++语言的15个晦涩特性
- Docker如何将错综复杂的Linux代码转成开发者的魔法
- R语言教程:写给高级入门者的数据打理攻略
- PHP邮件注入攻击技术
- Visual Studio 2013应对开发新挑战
- Visual Studio2013创建、公布监控Windows Azure网站
- Visual Studio 2013中的全新Editor功能
- 关于C语言,我喜欢和讨厌的十件事
- 七步从AngularJS菜鸟到专家(6):服务
- 贫血领域模型是如何导致糟糕的软件产生
- 做个犀利的码农:如何持续培养/更新自己的开发技能
- 最丑陋的C语言特性:tgmath.h
- 如家、汉庭等大批酒店开房记录泄露 同房人可查
- C++11标准后的C++阅读书目
- 从实战项目总结的Ruby小技巧(第一部分)
- 揭开Socket编程的面纱
- Java I/O系统基础知识
- 闲谈大数据和算法 知道这些让你受益无穷