文档章节

分布式技术 -- ZooKeeper配置文件分析,集群主从选举机制,节点类型讲解

猫狗熊
 猫狗熊
发布于 09/05 18:28
字数 828
阅读 30
收藏 2

    本章节博客开始深入下zookeeper的配置文件分析,集群主从选举机制,节点类型讲解等内容。

 

    一起学习,一起进步。继续沉淀,慢慢强大。希望这文章对您有帮助。若有写的不好的地方,欢迎评论给建议!

    初写博客不久,我是杨展浩。这是我的第七篇博客。加油!!!

 

1、zookeeper的配置文件分析

    配置文件内容不多,贴图完事:

    

 

2、集群主从选举机制

    zookeeper的集群与redis集群概念很类似。zookeeper的集群用 Leader领导者、Follower跟随者来标识。Redis的集群使用Master主、Slave从来标识。

  选举机制:初次进来的zookeeper服务,在参与选举中优先投自己一票,当发现自己的票数没超过集群的半数以上的时候,就会投出另一票给当前集群中的id最大的那一个zookeeper服务,zookeeper服务一次开启加入集群,当有一个zookeeper服务得到的投票数超过集群的半数以上,该zookeeper服务就当选Leader领导者了,而后面加入的zookeeper服务就算id大也不能当选Leader领导者,遵循先到先得原则,因为前面已经选出了一个Leader了,除非前面当选得Leader(zookeeper服务)挂了,选举重新开始。

    

 

3、节点类型讲解

  • 持久(Persistent) :客户端和服务器端断开连接后,创建的节点不删除。
    • 客户端与Zookeeper断开连接后,该节点依旧存在。
    • 持久化顺序编号目录节点客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给 该节点名称进行顺序编号。

 

  • 短暂(Ephemeral) :客户端和服务器端断开连接后,创建的节点自己删除。
    • 客户端与Zookeeper断开连接后,该节点被删除。
    • 临时顺序编号目录节点客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。

 

4、zookeeper客户端监听器原理

  • 先要存在一个 main 线程。

  • 在 main 线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connect),一个负责监听(listener )。

  • 通过 connect 线程将注册的监听事件发送给Zookeeper服务。

  • 在Zookeeper服务的注册监听器列表中将注册的监听事件添加到列表中。

  • Zookeeper服务监听到列表中有数据或路径发生变化,就会将这个消息发送给 listener 线程。

  • listener线程内部调用了process()方法(就是程序员自定义的处理代码)。

    常见的监听例子:

  • 监听节点数据的变化    get path [watch]

  • 监听子节点增减的变化    Is path [watch]

 

5、写数据流程

© 著作权归作者所有

猫狗熊
粉丝 1
博文 15
码字总数 8801
作品 0
广州
程序员
私信 提问
ZooKeeper的伪分布式集群搭建以及真分布式集群搭建

zk集群的一些基本概念 zookeeper集群搭建: zk集群,主从节点,心跳机制(选举模式) 配置数据文件 myid 1/2/3 对应 server.1/2/3 通过 zkCli.sh -server [ip]:[port] 命令检测集群是否配置成...

ZeroOne01
2018/04/24
0
0
大数据教程(3.3):zookeeper简介

一、概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功...

em_aaron
2018/07/28
89
0
zookeeper的下载安装和选举机制(zookeeper一)

1. 简要概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的框架。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架它负责存储和管理大家都关心的...

种豆南山丅
07/03
0
0
中小研发团队架构实践之分布式协调器.Net版ZooKeeper

一、ZooKeeper是什么 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月正式成为了Apache的顶级项目。 ZooKeeper是一个开放源代码的分布式协调服务。它具有高性能、高可用的...

Java干货分享
01/11
13
0
分布式网站架构后续:zookeeper技术浅析

 Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper...

蓝狐乐队
2014/04/21
286
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS3 : transition 属性

本文转载于:专业的前端网站➧CSS3 : transition 属性 CSS3的 transition 属性用于状态过度效果! 1、语法: 1 transition: property duration timing-function delay;2 -moz-transition: ...

前端老手
34分钟前
6
0
一个简单的加密工具,性能貌似不行,待优化

一个简单的加密工具,性能貌似不行,待优化 package com.kxvz.common.crypt;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import java.i......

Kxvz
36分钟前
5
0
vue实现路由懒加载

一、为什么要实现懒加载 减少首屏加载时间,避免白屏 二、常用的懒加载方式有两种:即使用vue异步组件 和 ES中的import a、vue异步加载: import Vue from 'vue' import Router from 'vue-ro...

Bing309
39分钟前
7
0
axios拦截器

axios.interceptors.response.use(response => { if (response.data.code == 0) { return response.data } else if (response.data.code == 600) { Cookies.remove('Admin-Token') router.pu......

Cyoya
41分钟前
6
0
给大家分享下部署云桌面的几个小技巧

从去年4月份开始我们公司就开始使用云桌面来进行上网办公的,在这一年多的使用过程中并没有出现像网上和有些用户说的那样,说云桌面各种坑老是出现这样和那样的问题,而我们之所以用的还不错...

GZASD
41分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部