zookeeper学习(一)

一、ZooKeeper简介

  1. ZooKeeper:动物管理员

    Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调。

  2. 什么是ZooKeeper?

    ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这 些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避 免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们 在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序 时导致管理复杂性。

  3. 功能

(1)存储数据

(2)监听

  1. 工作机制

基于观察者模式设计的分布式服务管理框架

  1. zookeeper存储结构

目录树结构

  1. zookeeper应用场景

(1)集群统一配置管理

(2)集群统一命名服务

(3)集群统一管理

(4)服务器的动态上下线感知

(5)负载均衡


  1. 安装zookeeper集群

(1)下载安装包

(2)上传安装包到Linux alt+p

(3)解压 tar -zxvf .tar

(4)修改配置文件 vi zoo.cfg dataDir=…/zkData

(5)启动zk

bin/zkServer.sh start

(6)查看状态 bin/zkServer.sh status

(7)启动客户端 bin/zkCli.sh


  1. 伪分布式:略

  2. 完全分布式安装

(1)下载安装包

(2)上传安装包到Linux alt+p

(3)解压 tar -zxvf .tar

(4)修改配置文件

vi zoo.cfg

dataDir=…/zkData

###############cluster###############

server.1=hd09-01:2888:3888

server.2=hd09-02:2888:3888

server.3=hd09-03:2888:3888

(5)添加文件myid

$cd zookeeper-3.4.10/zkData $touch myid

(6)添加内容在myid为1

$ vi myid 1

(7)发送zookeeper文件到其它机器

$ scp -r zookeeper-3.4.10 hd09-02:$PWD

(8)修改myid依次为2 3

(9)修改环境变量

vi /etc/profile

export ZOOKEEPER_HOME=/root/hd/zookeeper3.4.10

export PATH= P A T H : PATH: PATH:ZOOKEEPER_HOME/bin

(10)生效环境变量

source /etc/profile

(11)启动zookeeper

zkServer.sh start

(12)查看状态 zkServer.sh status

(13)关闭zookeeper zkServer.sh stop

zookeeper最主要的应用场景是集群,只要集群上的大多数zookeeper服务启动了,那么总的zookeeper服务便是可用的。另外,最好使用奇数台服务器。比如拥有5台zookeeper服务器,那么在最多2台服务器出现故障后,整个服务还可以正常使用。


关于zoo.cfg配置文件,参考如下:

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/...../data

dataLogDir=/...../dataLog

clientPort=2181

server.1=ip1:2888:3888

server.2=ip2:2888:3888

server.3=ip3:2888:3888

maxClientCnxns=60


	在这个配置文件中,新出现的语句的含义:

  initLimit : 此配置表示允许follower连接并同步到leader的初始化时间,它以tickTime的倍数来表示。
当超过设置倍数的tickTime时间,则连接失败。

  syncLimit : Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,
默认follower服务器与leader服务器之间断开链接。

  maxClientCnxns : 限制连接到zookeeper服务器客户端的数量

  server.id=host:port:port : 表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台
服务器应该知道其他服务器的信息。用户可以从“server.id=host:port:port” 中读取到相关信息。在服务
器的data(dataDir参数所指定的目录)下创建一个文件名为myid的文件,这个文件的内容只有一行,指
定的是自身的id值。比如,服务器“1”应该在myid文件中写入“1”。这个id必须在集群环境中服务器标识
中是唯一的,且大小在1~255之间。这一样配置中,ip1代表第一台服务器的IP地址。第一个端口号
(port)是从follower连接到leader机器的端口,第二个端口是用来进行leader选举时所用的端口。所以,
在集群配置过程中有三个非常重要的端口:clientPort:2181、port:2888、port:3888。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值