zookeeper 安装配置

2019-01-17  本文已影响0人  周末不加班

zookeeper概念简介:

ZooKeeper集群是由多台机器组成的,每台机器都充当了特定的角色,各种角色在协作过程中履行自己的任务,从而对外提供稳定、可靠的服务。

  1. Zookeeper是为别的分布式程序服务

  2. Zookeeper\color{red}{本身就是一个分布式程序}(只要有半数以上节点存活,zk就能正常服务)

  3. Zookeeper所提供的服务涵盖:主从协调、服务器节点动态 上下线、统一配置管理、分布式共享锁、统一名称服务……

  4. 虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:
    \color{red}{管理(存储,读取)用户程序提交的数据}
    \color{red}{并为用户程序提供数据节点监听服务}

由上图可知,ZooKeeper集群由多台机器组成,客户端的请求有可能被分配给任何一台机器来处理。考虑下面一个场景:客户端A问机器1,现在几点了,机器1回答下午两点半;与此同时,客户端B问机器2,现在几点了,机器2说,凌晨三点。两个客户端一交流,发现路唇不对马嘴,整个世界就乱了。可见,ZooKeeper集群时刻需要保持内部统一,无论客户端连接哪台机器,给出的响应应该保持一致。

为了保证数据的一致性,ZooKeeper对机器进行了角色划分

在每台机器数据保持一致的情况下,ZooKeeper集群自然可以保证,对于每次查询都返回同样的结果。但是,如果客户端发起增、删、改这类会引起数据变动的请求呢?多台机器自说自话,你让往东,他让往西,你要打狗,他要撵鸡,听谁的?

正所谓,家有千口,主事一人。不管有多少台机器,只能有一台机器充当Leader的角色,只有Leader才有权力发起更改数据的操作,Follower如果接收到了更改数据的请求,需要转交给Leader来处理。

Leader接受到一个更改数据的请求后,会广播消息:

每个Follower请注意!现在颁布001号命令,对某个节点执行某项操作。收到请回答!

Follower按照Leader的要求执行完任务之后会,会发送一条消息:

老大老大,任务执行完毕!

一旦Leader收到了半数以上的Follower的确认消息,就判定该操作已生效,会再发一条广播:

每个Follower请注意!001号命令已生效!

https://cloud.tencent.com/developer/article/1031825


zookeeper安装:

zookeeper安装3步骤:下载,解压,配参数 就这么简单

# tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/mysoftware/
# mv zookeeper-3.4.13 zookeeper
//在安装根目录下
rm -rf src/ *.xml *.txt *.md

zookeeper配置:

sample 样品

cp zoo_sample.cfg zoo.cfg
# 每个心跳周期的毫秒数
tickTime=2000
# 初始化阶段可以花去的心跳个数 (10个心跳单位)
initLimit=10
# 从返送请求到获得相应最长时间(5个心跳单位) 
# 超过时间认为对方挂了
syncLimit=5
# 数据\工作 目录
dataDir=/usr/mysoftware/Workspace/zookeeper
# 客户端请求的端口,~需要开放端口~
clientPort=2181

# 新增
# 配置集群中有几台机器
# 2888 Leader与Follower通信端口
# 3888 投票端口
# 为给集群服务器定义server.1 2 3编号 
# ~②需要在数据目录配置myid文件并定义编号1|2|3 ~
server.1=192.168.33.141:2888:3888
server.2=192.168.33.142:2888:3888
server.3=192.168.33.143:2888:3888
#停止firewall防火墙
systemctl stop firewalld.service 
#禁止firewall开机启动
systemctl disable firewalld.service 
cd /usr/mysoftware/Workspace/zookeeper
echo 1 > myid

常用命令

上一篇下一篇

猜你喜欢

热点阅读