1. ZooKeeper简介
1. ZooKeeper是什么
ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件
1.1 ZooKeeper设计目标
简单的数据结构:共享的树形结构,类似文件系统,存储于内存;
可以构建集群:避免单点故障,3-5台机器就可以组成集群,超过半数正常工作就能对外提供服务;
顺序访问:对于每个读请求,zk会分配一个全局唯一的递增编号,利用这个特性可以实现高级协调服务;
高性能:基于内存操作,服务于非事务请求,适用于读操作为主的业务场景。3台zk集群能达到13w QPS;
1.2 ZooKeeper的使用场景
数据发布订阅
负载均衡
命名服务
Master选举
集群管理
配置管理
分布式队列
分布式锁
2. ZooKeeper的安装部署
ZooKeeper安装部署方式分为三种
单机模式:在一台机器上部署
集群模式:在多台机器上部署,通过zoo.conf配置不同机器ZooKeeper之间的关联关系
伪集群模式:在一台机器上部署,复制多个ZooKeeper,在zoo.conf中配置这几个拷贝之间的关系
2.1 windows单机安装
首先要安装jdk
安装ZooKeeper,在官网http://zookeeper.apache.org/下载zookeeper,解压即可
解压后目录
zoo.cfg中的dataDir配置Zookeeper工作中相关的data及log目录
2.2 集群配置(Linux环境)
安装jdk,配置环境变量【vi /etc/profile】【关闭防火墙】
安装ZooKeeper
下载ZooKeeper安装包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
解压
tar -zxvf zookeeper-3.4.10.tar.gz
重命名
mv zookeeper-3.4.10 zookeeper
修改配置文件【复制zoo_sample.cfg到zoo.cfg】
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
------------zoo.cfg-------------
(1)dataDir=/usr/local/zookeeper/data(注意同时在zookeeper创建data目录)
创建服务器标识:myid
服务器标识配置:
创建文件夹: mkdir data
创建文件myid并填写内容
vi myid (内容为服务器标识【id】)
(2)最后面添加集群服务器配置
server.id=host:port:port : 表示了不同的zookeeper服务器的自身标识
id:myid中的内容,服务器标识
host:服务器ip地址
port:第一个端口,用于从follower连接到leader机器的端口
port:第二个端口,用来进行leader选举时所用的端口
e.g
server.0=192.168.212.154:2888:3888
server.1=192.168.212.156:2888:3888
server.2=192.168.212.157:2888:3888同样的在其它服务器上配置剩余节点 可以远程复制
scp -r /soft root@zk2:/
scp -r /soft root@zk3:/最后注意修改不同节点的myid文件内容
启动集群所有节点ZooKeeper
路径: /usr/local/zookeeper/bin
执行: zkServer.sh start
(注意这里每台机器的ZooKeeper都要进行启动)查看集群节点状态
zkServer.sh status【在三个节点上检验zk的node,一个leader和俩个follower】
伪集群模式其实就是在一台机器上通过不同端口号来模仿集群模式部署的
2.3 目录结构
| 目录 | bin | conf | contrib | dist-maven | docs | lib | recipes | src |
|---|---|---|---|---|---|---|---|---|
| 作用 | 存放系统脚本 | 存放配置文件 | zk附加功能支持 | maven仓库文件 | zk文档 | 依赖的第三方库 | 经典场景样例代码 | zk源码 |
其中最重要的就是bin和conf两个目录
bin目录c
zkServer为服务器,启动后默认端口为2181
zkCli为命令行客户端
conf目录
conf目录为配置文件存放的目录,zoo.cfg为核心的配置文件,这里面的配置有很多,这配置是运维的工作,没必要全部掌握,挑选几个讲解:
clientPort: 参数无默认值,必须配置,用于配置当前服务器对外的服务端口,客户端必须使用这端口才能进行连接
dataDir: 用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)
dataLogDir: 用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争
snapCount: 新安装zk这文件夹里面是没有文件的,可以通过snapCount参数配置产生快照的时机
以下配置集群中才会使用
tickTime: 心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
initLimit: 多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的数据较大,则应相应增大这个值
syncLimit: 多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃
1. ZooKeeper简介的更多相关文章
- ZooKeeper简介
本文中,我们将对ZooKeeper进行介绍.简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务. 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对Z ...
- Zookeeper简介与安装
Zookeeper:A Distributed Coordination Service for Distributed Applications. 一.Zookeeper简介 众所周知,协同服务是分 ...
- Zookeeper简介与集群搭建
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介与集群搭建【转】
Zookeeper简介 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理.命名.分布式同步.集群管理.数据库切换等服务.它不适合用来存储大量信息,可以用来存储一些配置.发布与订阅等少 ...
- Zookeeper简介及单机、集群模式搭建
1.zookeeper简介 一个开源的分布式的,为分布式应用提供协调服务的apache项目. 提供一个简单的原语集合,以便于分布式应用可以在它之上构建更高层次的同步服务. 设计非常易于编程,它使用的是 ...
- Zookeeper简介及使用
一.Zookeeper简介 1.zookeeper简介 动物管理员 Apache ZooKeeper致力于开发和维护开源服务器,实现高度可靠的分布式协调. 2.什么是ZooKeeper? ZooKee ...
- ZooKeeper学习之路(一)—— ZooKeeper简介及核心概念
一.Zookeeper简介 Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护.Zookeeper可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调/通知. ...
- ZooKeeper系列(一)—— ZooKeeper 简介及核心概念
一.Zookeeper简介 Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护.Zookeeper 可以用于实现分布式系统中常见的发布/订阅.负载均衡.命令服务.分布式协调 ...
- Zookeeper简介及安装(一)
1 Zookeeper入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. 1.2 特点 1.3 数据结构 1.4 应用场景提供的服务包括:统一命名服务 ...
- 第1章 分布式系统概念与ZooKeeper简介
ZooKeeper分布式专题与Dubbo微服务入门 第1章 分布式系统概念与ZooKeeper简介 1-1 zookeeper简介 1-2 什么是分布式系统 略 1-3 分布式系统的瓶颈以及zk的相关 ...
随机推荐
- DELPHI FMX 同时使用LONGTAP和TAP
在应用到管理图标时,如长按显示删除标志,单击取消删除标志.在FMX的手势管理中,只有长按LONGTAP,点击TAP则是单独的事件,不能在同事件中管理.在执行LONGTAP后,TAP也会被触发,解决方 ...
- Dubbo学习-8-dubbo启动时检查
启动时检查的作用如下: (1)Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true& ...
- MaxCompute按量计费计算任务消费监控告警
MaxCompute 按量计费资源为弹性伸缩资源,对于计算任务,按任务需求提供所需资源,对资源使用无限制,同时MaxCompute按量计费的账单为天账单,即当天消费需要第二天才出账,因此,有必要对计算 ...
- 如何分析及处理 Flink 反压?
反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题.反压意味着数据管道中某个节点成为瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速.由于实时计算应用通 ...
- apache如何发布地图服务
svg jpg Tomcat和apache是什么关系呢?:https://www.cnblogs.com/zangdalei/p/8057325.html geoserver又是怎么来的呢? Tomc ...
- 安装及启动Tomcat
安装及启动Tomcat 法一:从命令行启动Tomcat: 配置环境变量 Windos+R输入cmd打开dos窗口转到D:\apache-tomcat-7.0.54\bin目录,并输入startup.b ...
- JQuery触发hover事件无效时使用js原生的触发事件方法
需求:在开发一个从微信公众号后台管理网页上爬取数据的chrome插件时,有部分页面元素是只显示了部分摘要信息的,需要把鼠标移上去后才能显示全部信息(类似title的弹出显示).这就需要在chrome插 ...
- Java机试题目
1.生成一个随机四位数,每位数字不重复. package com.cloud.stagging.lhcloudzuul; import java.util.Random; /** * 1.生成一个随机 ...
- vue2.0 之 douban (五)创建cell,media-cell组件
1.组件cell 这里的cell分为三种样式,左侧带图标,不带图标,以及左侧带竖线的cell. 每一个组件都有一个底部边框: 这里我们采用了移动端1px像素问题的解决方法:父级元素设置相对定位,构建1 ...
- selenuim&PhantomJS&Beautifulsoup练习经典实例
# coding = utf-8__autor__ = 'litao' from selenium import webdriverfrom selenium.webdriver.common.by ...