Zookeeper入门

2023-10-27

Zookeeper概念

      Zookeeper是一个开源的,分布式的项目,是apache的一个项目。

      从设计模式的角度理解,Zookeeper是基于观察者模式的。它负责存储大家都关心的数据,然后接受观察者的注册,一旦这些数据发生变化,则会通知已注册的观察者做出相应的反应。

      zookeeper=文件系统+通知机制。

Zookeeper特点

      1)zookeeper包含了一个领导者(leader)和多个跟随者(follower)。

      2)只要有一半以上的节点存活,zookeeper就可以提供服务。

      3)全局数据一致,每个server保存相同的一个副本,client无论连接哪一个server,获取的数据都相同。

      4)更新请求依次按顺序执行,来自同一个client的请求按其发送顺序依次执行。

      5)数据更新的原子性,数据更新要么成功,要么失败。典型的事务特点。

      6)实时性。在一定时间范围内,客户端能读到最新数据。

      

Zookeeper数据结构

      zookeeper的数据结构为树形结构,整体上可以被看做一棵树,每个节点被称作一个ZNode。每个Znode默认只能存储1M的数据,每个Znode都可以通过路径唯一的标识。

 

      

Zookeeper应用场景

    提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点上下线、软负载均衡等。

    在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。如下图,Zookeeper负责控制客户端所访问的实际服务端地址,对于客户端来说,只需要知道域名即可。

      

      在分布式环境下,配置数据同步是非常常见的,一般要求一个集群中,所有节点的配置信息是一致的,比如Kafka集群。对配置文件修改后,希望能快速同步到其他各个节点上。这种情况下,可以将配置管理交由Zookeeper实现,可以将配置数据写到其中一个Znode中,各个客户端监听这个Znode,一旦该配置数据发生变化,Zookeeper将通知各个客户端。

      

      分布式环境下,实时掌握每个节点的状态是必要的,Zookeeper可根据节点的实时状态做出调整。Zookeeper可以实现实时监控节点状态变化,实现方法为将节点信息写入Zookeeper的一个Znode,监听这个Znode可获得它的实时变化。

      

      客户端能实时洞察到服务器上下线的变化,当服务器的状态变化时,Zookeeper会通知到。

      

      在Zookeeper中记录每台服务器的访问次数,通过算法,让访问数最少的服务器处理最新的访问请求,比如下图192.168.22.14的服务器就会处理新来的client2的服务请求。

      

Zookeeper下载安装

      Zookeeper的下载地址https://zookeeper.appache.org/

      安装步骤:

      1)安装jdk

      2)复制Zookeeper到指定路径下

      3)解压

      4)参数修改

      5)启动Zookeeper

 

 

如果您喜欢这篇文章,别忘了点赞和评论哦!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zookeeper入门 的相关文章

  • IDEA安装Vue插件后为什么创建.vue文件不显示vue图标

    我的IDEA安装Vue插件后 按道理来说 新建一个 vue文件 文件前面应该会有一个 V 一样的图标 然而事实并不是 百度了一圈 大部分人都是说这样的 试了一下 并没用 于是乎 我找到了正确答案来帮刚入门Vue的小白填坑 打开 File g
  • MySQL分区(Partition)功能试验

    目录 概述 分区表和未分区表试验过程 分区命令详解 概述 自5 1开始对分区 Partition 有支持 6 0应比较稳定 水平分区 根据列属性按行分 举个简单例子 一个包含十年发票记录的表可以被分区为十个不同的分区 每个分区包含的是其中一
  • 【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 1 1 LSTM神经网络算法 1 2 PSO算法 1 3 PSO LSTM负荷预测模型 2 运行结果 2
  • excel 中如何使用python操作

    在Excel中使用Python可以通过两种方式实现 使用Python插件 您可以使用一些Excel插件 如PyXLL xlwings等 这些插件可以将Python代码嵌入到Excel工作簿中 以便在Excel中运行Python代码 使用Py
  • 服务器带宽测试

    服务器带宽 简单地说 就是同一时间段能传输的数据总量 服务器带宽越小那么可容纳数据吞吐量越小 同一时间段可容纳的用户访问量也越少 单位时间内从服务器拉取的数据量就越小 服务器带宽越大 可容纳同一时间访问数据越大 单位时间内从服务器拉取的数据
  • 1.8 C++ string

    string基本概念 本质 string是C 风格的字符串 而string本质上是一个类 string和char 区别 char 是一个指针string是一个类 类内部封装了char 管理这个字符串 是一个char 型的容器 特点 stri
  • MATLAB人工神经网络ANN代码

    本文介绍基于MATLAB实现人工神经网络 ANN 回归的详细代码与操作 目录 1 分解代码 1 1 循环准备 1 2 神经网络构建 1 3 数据处理 1 4 模型训练参数配置 1 5 神经网络实现 1 6 精度衡量 1 7 保存模型 2 完
  • android_使用ViewPager和Fragment实现滑动导航

    ViewPage是android support v4 jar包提供的用于页面滑动的库 这里没有将整个实现过程记录 只是把知识点摘出来单独解释 可参照代码自己实现 1 在xml布局文件中添加android support v4 view V
  • Keil 5使用JLink直接调试正在运行的CPU

    原文链接 环境 目标CPU STM32F429 连接工具 JLink V9 连接方式 SWD 调试工具 Keil MDK 5 20 使用场景 目标板正在运行 但是出BUG了 需要调试 而当前又没有在线debug 于是就需要用调试器在不复位C
  • C++ Streams

    1 fstream File table data txt 的内容为 137 2 71828 42 3 14159 7897987 1 608 1337 01101010001 从上述文件中读取第一个整数和第二个小数 ifstream in
  • 一篇文章学懂ADB命令和Monkey命令

    一篇文章学懂ADB命令和Monkey命令 1 adb命令 1 1 查看连接设备 1 2 查看adb版本 1 3 查看手机当前启动App的应用名和包名 1 4 使用aapt使用aapt 查看app的包名和启动名 查看app的包名和启动名 1
  • Element框架更换主题色

    Element 默认的主题色是鲜艳 友好的蓝色 但是UI小姐姐在设计的时候会为了更贴合项目主旨设计出其他颜色的主题色 比如新能源项目一般选用绿色做为主题色 此时我们就需要更改Element框架的主题色 一开始博主的想法是全局修改框架默认样式
  • JDBC连接各种数据库

    ConnectHSQLDB java Java代码 ConnectHSQLDB java package com javaworkspace connecthsqldb import java sql Connection import j
  • /usr/lib64/sa/sa2脚本解释

    文章目录 前言 脚本原文 脚本解释 前言 usr lib64 sa sa1脚本和 usr lib64 sa sa2脚本都是Linux 系统上的 sysstat 工具的一部分 在 etc cron d sysstat这个定时任务下执行 用来收

随机推荐

  • arm+linux swap出错问题

    今天 程序跑了两个小时 忽然出现如下信息 swap dup Bad swap file entry 002fdf80 VM killing process intrusion test swap free Bad swap file ent
  • Android-S模拟器

    0 前言 参考资料 1 基于Android P对Emulator的使用进行了说明 Android S情况有变 因此撰写本文进行记录 1 编译 根据参考资料 1 的方法编译 aosp x86 64 eng 完成后执行emulator无法正常进
  • 南京美食,为吃遍天下做准备~~

    标点美食地址 1 羊肉泡馍 长白街348号有家 老陕家 面馆 郑和公园北面 肉加馍 2 蓝空饭店 三条巷那边 稻香鸭 红烧老鹅 韭香脆皮鸡 是很好的还有一个叫什么牛肉粒的也好吃昏的了 3 山西炸酱面馆 顺着流行青年广场旁的天桥走到马路对面
  • 【阅读笔记】联邦学习实战——构建公平的大数据交易市场

    联邦学习实战 构建公平的大数据交易市场 前言 1 大数据交易 1 1 数据交易定义 1 2 数据确权 1 3 数据定价 2 基于联邦学习构建新一代大数据交易市场 3 联邦学习激励机制助力数据交易 4 FedCoin支付系统设计 4 1 Po
  • stm32 SystemInit函数详解

    官方固件库中的对应函数为 void SystemInit void Reset the RCC clock configuration to the default reset state for debug purpose Set HSI
  • 终于明白协方差的意义了

    转自 https blog csdn net GoodShot article details 79940438 协方差其意义 度量各个维度偏离其均值的程度 协方差的值如果为正值 则说明两者是正相关的 从协方差可以引出 相关系数 的定义 结
  • 程序员必读书目推荐

    1 Effective Java Joschua 稍许过时 但没有替代java方面的书 2 Effectvie C Scott Meyer 3 More Effective C Scott Meyer的书是非常非常好书 每次读都感到汗颜 自
  • Vue 动态锚点

    这是封装的组件 判断容器的滚动 接收父组件传来的Tab参数
  • Qt Quick里的图形效果——混合(Blend)

    Blend 元素用指定的模式混合两个 Item 在我们使用 QPainter 绘图时 支持 Composition Modes Blend 干的事儿与此类似 使用 Blend 需要 import QtGraphicalEffects 1 0
  • IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”

    目录 一 一般的解决思路 1 JDBC下载链接 2 选择下载内容 并进行下载 3 将驱动导入java项目 二 依然导入驱动失败怎么办 当我们在idea中使用java操作mysql数据库时会出现 Exception in thread mai
  • 自动驾驶多边形iou计算Shapely库笔记

    参考 https cloud tencent com developer ask 42755 https blog csdn net u014421797 article details 89501572 https www itransl
  • MMDetection= Cuda10.0.130 + Pytorch1.4.0 + torchvision0.5.0 + mmcv-full1.1.6 + mmdet2.5.0

    1 版本选取 MMDetection的版本选择 安装的时候 需要选择合适的版本 下载不同版本的MMDetection 从 Github 的历史版本中选择合适的版本 https github com open mmlab mmdetectio
  • Python之线程编程(Thread)

    线程基本概念 1 什么是线程 1 线程被称为轻量级的进程 2 线程也可以使用计算机多核资源 是多任务编程方式 3 线程是系统分配内核的最小单元 4 线程可以理解为进程的分支任务 2 线程特征 1 一个进程中可以包含多个线程 2 线程也是一个
  • Untiy UDP局域网 异步发送图片

    同步画面有问题 传图片吧 using System Text using System Net Sockets using System Collections using System Collections Generic using
  • WSL2 Ubuntu中apt update命令报错,无法解析域名解决方法

    参考链接 参考链接 1 sudo apt get update失败 在ubuntu16中 当我们输入sudo apt get update会失败 这里有很多原因 1 网络原因 先检查网络好不好用 2 ubuntu16 自带的源不好用 或者有
  • 大数据技术学习代码记录——Scala

    文章目录 一 Scala 二 Day01代码记录 2 1 HelloWord scala 2 1 1 TestHelloWorld scala 2 2 ifelse scala 2 3 PrintStudentInfo scala 三 Da
  • LayUI中的内置模块之 常用元素操作 - layui.element

    前言 最近在准备找工作的事项 但是作为一个后台也是需要了解一些前端框架的 就目前的来说有大火的VUE 但是VUE还是存在一定的学习成本 所以决定先从对后台友好的LayUI开始入手先做一些小项目练练手 后面会考虑使用VUE ElementUI
  • 字符串压缩(小知识点)

    当对字符串进行修改的时候 需要使用 StringBuffer 和 StringBuilder 类 和 String 类不同的是 StringBuffer 和 StringBuilder 类 的对象能够被多次的修改 并且不产生新的未使用对象
  • Maven 项目的配置与程序的运行

    Maven 是一个 Java 包管理工具 需要下载和安装 通过配置 Maven 以后建立项目时就不需要再创建 lib 目录并导入相关的包 只需要在它的配置文件 pom xml 文件中进行包的配置 这样的配置方法提供了便利 大大节约了资源 在
  • Zookeeper入门

    Zookeeper概念 Zookeeper是一个开源的 分布式的项目 是apache的一个项目 从设计模式的角度理解 Zookeeper是基于观察者模式的 它负责存储大家都关心的数据 然后接受观察者的注册 一旦这些数据发生变化 则会通知已注