一、Zookeeper入门

1、概述

分布式服务管理框架(存储和管理数据)

Zookeeper=文件系统+通知机制

2、特点

主从集群

半数以上,正常工作

请求顺序执行

数据更新具有原子性

3、数据结构

树形结构,每个节点被称为一个Znode

一个znode存储1MB数据

4、应用场景

统一命名服务(域名而无需ip)

统一配置管理(集群节点配置一致,需要快速同步)

统一集群管理(监控节点的状态变化)

服务器节点动态上下线(上下线通知)

软负载均衡(记录服务器访问次数)

二、安装

1、本地模式

修改配置zoo.cfg

启动zk服务bin/zkServer.sh start  / 停止bin/zkServer.sh stop

启动客户端bin/zkCli.sh / 退出quit

2、配置参数

tickTime =2000:通信心跳数

initLimit =10:LF初始通信时限

syncLimit =5:LF同步通信时限

dataDir:数据文件目录+数据持久化路径

clientPort =2181:客户端连接端口

三、Zookeeper实战

1、分布式安装部署

添加与server对应的编号

进行同步xsync myid

修改配置server.4=hadoop104:2888:3888---交换信息的端口:选举时通信的端口

启动、查看状态bin/zkServer.sh status

2、客户端命令行操作

查看子节点:ls path

获得节点的值:get path

递归删除节点:deleteall  或 rmr /sanguo/shuguo

创建短暂节点: create -e /sanguo/wuguo "zhouyu"

3、API应用

创建客户端zkClient

创建子节点zkClient.getChildren("/", true);

判断节点是否存在:zkClient.exists("/eclipse", false);

4、监听服务器节点动态上下线

任意一台客户端都能实时感知到主节点服务器的上下线

获取子节点信息:client.getServerList();

四、Zookeeper内部原理

1、节点类型

持久化(顺序)目录节点

临时目录节点(按节点名称顺序编号)

2、Stat结构体

修改状态会得到zxid形式的时间戳,也就是ZooKeeper事务ID

ctime 、mzxid 、mtime 、pZxid、cversion 、dataversion 、aclVersion 、ephemeralOwner、dataLength、numChildren

3、监听器原理

main创建两个线程connect和listener

4、Paxos算法

基于消息传递且具有高度容错特性的一致性算法。

5、选举机制

半数机制(奇数个节点,三五个)

6、写数据流程

7、部署方式

(1)部署方式单机模式、集群模式
(2)角色:Leader和Follower
(3)集群最少需要机器数:3

【Zookeeper】结构、应用、安装部署与参数、客户端命令行操作、API应用、内部原理(选举机制、写数据、监听器)的更多相关文章

  1. zookeeper客户端命令行操作

    一.命令行 (1)使用zookeeper安装bin目录下的./zkCli.sh连接到zookeeper服务器上,基本语法如下: ./zkCli.sh -timeout 0 -r -server ip: ...

  2. ZooKeeper学习笔记(四)——shell客户端命令操作

    ZooKeeper客户端命令行操作 启动服务端 [simon@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start 查看状态信息 Using confi ...

  3. Zookeeper(一)CentOS7.5搭建Zookeeper3.4.12集群与命令行操作

    一. 分布式安装部署 1.0 下载地址 官网首页: https://zookeeper.apache.org/ 下载地址: http://mirror.bit.edu.cn/apache/zookee ...

  4. (转)ZooKeeper 笔记(1) 安装部署及hello world

    ZooKeeper 笔记(1) 安装部署及hello world   先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) http://zookeeper.apache.or ...

  5. Zookeeper介绍及安装部署

    本节内容: Zookeeper介绍 Zookeeper特点 Zookeeper应用场景 用到了Zookeeper的一些系统 Zookeeper集群安装部署 一.Zookeeper介绍 是一个针对大型分 ...

  6. Zookeeper的命令行操作(三)

    Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...

  7. 屹今为止最好用的HTTP客户端命令行工具-接口调试神器HTTPie

    一.思考❓❔ 1.你用过哪些http客户端调试工具? Postman 不够灵活 需要打开客户端, 麻烦 学习成本高 Jmeter 臃肿 麻烦 学习成本高 curl 参数多, 记不住 不够灵活 主要在L ...

  8. ZooKeeper常用命令行操作

    ZooKeeper常用命令行操作 通过./zkCli.sh 打开zk的客户端进入命令行后台 ls/ls2 列出当前节点下的子节点 ls2还会列出当前节点的状态 [zk: localhost:2181( ...

  9. Oracle安装完成后,如何用命令行启动和关闭数据库?

    Oracle安装完成后,如何用命令行启动和关闭数据库? 解答: 打开:STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ dat ...

  10. 第4章 ZK基本特性与基于Linux的ZK客户端命令行学习

    第4章 ZK基本特性与基于Linux的ZK客户端命令行学习 4-1 zookeeper常用命令行操作 4-2 session的基本原理与create命令的使用

随机推荐

  1. 【微服务】- 配置中心 - Nacos

    微服务 - 配置中心 - Nacos 一个有梦有戏的人 @怒放吧德德 分享学习心得,欢迎指正,大家一起学习成长! 今天的学习任务就是学习使用Nacos作为配置中心. 努力克制自己,拒绝摆烂! 什么是配 ...

  2. Kubernetes DevOps: Jenkins Pipeline (流水线)

    要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式.Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于 ...

  3. Elasticsearch:IK中文分词器

    Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze { "text": "我爱北京天安门&quo ...

  4. GitLab基础知识

    GitLab基本介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 与Github类似,GitLab ...

  5. 2. 在 Kubernetes 上安装 Gitlab

    总结: 所需要的三个yaml文件的下载地址:https://files.cnblogs.com/files/sanduzxcvbnm/k8s-gitlab.zip Gitlab官方提供了 Helm 的 ...

  6. 使用FastDFS打造一款高可用的分布式文件系统

    FastDFS 介绍 参考: http://www.oschina.net/p/fastdfs FastDFS 是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文 ...

  7. C#中Math.Round()实现中国式四舍五入问题

    C#中的Math.Round()并不是使用的"四舍五入"法.实际上是四舍六入五取偶. 对于这个问题我们常见的解决方式是使用MidpointRounding.AwayFromZero ...

  8. Pytest进阶使用

    fixture 特点: 命令灵活:对于setup,teardown可以省略 数据共享:在conftest.py配置里写方法可以实现数据共享,不需要import导入,可以跨文件共享 scope的层次及神 ...

  9. IDEA插件MyBatisCodeHelper-Pro的破解与使用

    0.前言 本文中的IDEA版本是2020.3,使用的插件版本是MyBatisCodeHelper-Pro 2.8.9,3.0+版本目前没找到激活的方式 和本文插件类似的还有mybatisX,但我不喜欢 ...

  10. 怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读

    1.如何在前端vue中隐藏某一个元素(el-form-item怎样隐藏) 给每项表单项添加一个自己的id名,并用v-model绑定相对应的数据,利用v-if根据上一个表单项的数据值来进行显示或隐藏 & ...