Zookeeper原理
一、概念
- Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目。封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
二、选举机制
- 首先是几个概念:
- myid:节点的唯一标识,在启动节点之前需要配置好;
- zxid:在数据修改后会增加,zxid越大证明这个节点里的数据越新。
- leader:leading 角色与状态
- follower:following
- observer:looking
- 过程
- 只有两种情况下会产生选举:
- 集群初始化(没有leader);
- leader不能与其他节点保持稳定连接;
- 第一轮:一开始都是looking状态,第一个节点都自己投票(因为没超过半数,所以继续下一轮投票)
- 然后节点2也给自己投票,然后互相交换投票结果(会检查有效性)。选票的形式为(myid,zxid)。
- 选票比较机制:会比较zxid,保留zxid较大的选票,如果zxid都一致,那么保留myid最大的选票。
- 第二轮将通过比较取舍后的选票互相发送,然后判断是否有超过半数的节点保留了相同的选票,如果是,则选票决定了leader;如果否,则节点2为looking状态,继续开启第三个节点进行选票。
- 添加一个节点时,如果已有leader,则新加节点自动变成follower。
- 整体而言,就是挨个启动节点,然后投一次票比一次id:带你搞明白Zookeeper选举机制_qu_smalldoubao的博客-CSDN博客
- 只有两种情况下会产生选举:
- ZAB协议
-
zab协议是为zk专门设计的一种支持崩溃恢复的原子广播协议,zk依赖zab实现分布式数据一致性,来保证住呗模式的系统架构中各个副本之间的数据一致性。zab协议包括两个模式:崩溃回复(新选举leader)和消息广播(选举出Leader服务器之后,进入消息广播模式,开始接收处理客户端的请求)
-
相关文章:
Zookeeper原理
一、概念 Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目。封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 二、选举机制 首先是几个概念: myid:节点的唯一标识&…...
关于FPGA如何快速生成模块的例化模板(实用)
关于FPGA如何快速生成模块的例化模板(实用) 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 关于FPGA如何快速生成模块的例化模板(实用)一、引言二、快速生成例化模块的几种方法1. IP核的例化模…...
在 Python 中将字符串转换为集合
使用 set() 类将字符串转换为集合,例如 my_set set(my_str)。 set() 类将通过拆分其字符将字符串转换为集合。 my_str one# ✅ 通过拆分字符将字符串转换为集合 my_set set(my_str) print(my_set) # 👉️ {n, o, e}# -----------------------------…...
大数据Flink进阶(十三):Flink 任务提交模式
文章目录 Flink 任务提交模式 一、会话模式(Session Mode) 二、单作业模式(Per-Job Mode) 三、应用模式(Application Mode) Flink 任务提交模式 Flink分布式计算框架可以基于多种模式部署,…...
day11—编程题
文章目录1.第一题1.1题目1.2涉及的相关知识1.3思路1.4解题2.第二题2.1题目2.2思路2.3解题1.第一题 1.1题目 描述: 将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法࿰…...
CentOS下安装crontab及cron表达式解析
目录安装依赖服务启停任务操作参数简要说明1、参数说明2、cron表达式解析(1)定义(2)结构(3)字段含义(4)注意事项(5)常用表达式例子crontab示例结尾安装依赖 # vixie-cron软件包是crontab的主程序 # crontabs软件包是用来安装、卸装、或列举用来驱动crontab守护进程的表格的程序…...
python 绘制训练曲线--基于Numpy.convolve曲线平均滤波
文章目录1 训练曲线--震荡的非常厉害2 基于Numpy.convolve曲线平均滤波3 python 绘制训练曲线 平滑处理--Savitzky-Golay 滤波器曲线平滑4 python 绘制训练曲线--插值法 曲线平滑处理1 训练曲线–震荡的非常厉害 上一篇文章用python自己绘制训练曲线震荡的非常厉害(…...
状态管理插件vuex
概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 作用: 如果我们使用全局总线要让所有的组件…...
arthas—阿里开源的Java诊断工具
一、arthas简述Arthas 是阿里开源的Java诊断工具。安装在系统所在服务器,有着强大的能力,是一个开发运维神器。主要功能在线热替换代码/代码增强全局视角的性能分析查看方法执行情况,帮助跟踪偶现的bug支持JDK6二、官方资料官方文档的介绍非常…...
Java学习记录
阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 文章目录阅读前请看一下:我是一…...
OpenGL API 之 glVertexAttribPointer
glVertexAttribPointer 定义通用顶点属性数据的数组 C Specification format void glVertexAttribPointer(GLuint index,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const void * pointer); Parameters nametypedescriptionindexGLuint Specifies the inde…...
蓝桥杯真题4
[蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 KKK 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 NNN 块巧克力,其中第 iii 块是 HiWiH_i \times W_iHiWi 的方格组成的长方形。 为了公平起见,小明需要从这 NN…...
day02_基本语法
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记Java2307_沐沐霸的博客-CSDN博客 零、复习昨日 一、程序&Java介绍 二、安装JDK&配置环境变量 三、DOS命令 四、第一个程序[重点] 五、Java语言规范[重点] 六、运行机制 七、Typora工具使用 附录:…...
多线程之单例模式
前言 本篇介绍的是wait与notify方法,通过wait来顺序控制执行一些代码,了解单例模式,进行单例模式的简单实现,介绍饿汉模式下出现线程不安全的问题与解决;如有错误,请在评论区指正,让我们一起交…...
2023年绿色建筑国际会议(ICoGB 2023) | Springer独立出版
会议简介 Brief Introduction 2023年绿色建筑国际会议(ICoGB 2023) 会议时间:2023年5月21日-23日 召开地点:瑞典斯德哥尔摩 大会官网:www.icogb.org 2023年绿色建筑国际会议(ICoGB 2023)将围绕“绿色建筑”的最新研究领域而展开,为…...
Python中进程和线程到底有什么区别?
人生苦短,我用python python 安装包资料:点击此处跳转文末名片获取 一、进程和线程的关系 线程与进程的区别可以归纳为以下4点: 地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。…...
2023美赛春季赛F题思路数据代码论文分享
文章目录赛题思路赛题详情参赛建议(个人见解)选择队友及任务分配问题(重要程度:5星)2023美赛春季赛F题思路数据代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片,加入获取…...
念一句咒语 AI 就帮我写一个应用,我人麻了...
原文链接:https://forum.laf.run/d/232 作为人类,我们时常会有自己独特的想法和脑洞大开的创意。然而,这些想法往往因为成本过高而无法实现,毕竟每个人的能力和精力都是有限的,尤其是对于程序员而言,不可能…...
开放平台设计之接口签名认证
前言 当前时代,数据是王道!当我们自己的平台有了足够大的数据量,就有可能诞生一个开放平台宫第三方分析、使用。那么我们怎么去实现对外部调用接口的控制与鉴权呢?这是我们今天的重点——接口签名认证!!&a…...
Vue自创插件发布到npm以及使用方法
Vue自创插件发布到npm以及使用方法 目标:创建my-popup-selector下拉框组件,并发布到npm,效果如下图: 禁用时样式: ①创建vue项目: my-popup-selector ②项目目录结构截图如下: ③在项目根目录…...
OWASP靶场实战指南:从环境搭建到第一个SQL注入漏洞挖掘(含DVWA通关思路)
OWASP靶场实战指南:从环境搭建到第一个SQL注入漏洞挖掘 网络安全的世界就像一片未知的海洋,而靶场就是我们练习游泳的安全泳池。对于刚入门的新手来说,最大的困扰往往不是缺乏理论知识,而是不知道如何将所学付诸实践。OWASP靶场正…...
【实战指南】SVN SSL协议不兼容问题:从TLS版本冲突到降级解决方案
1. 当SVN遇上SSL:TLS协议冲突的典型症状 最近在帮团队排查SVN代码拉取问题时,遇到了一个经典的错误提示:"error running context: an error occurred during ssl communication"。这个看似简单的报错背后,其实是现代加密…...
计算机毕设 java 基于 BS 的驾校在线学习考试系统 SpringBoot 驾校在线学习与考试管理平台 JavaWeb 驾校理论学习与模拟考试系统
计算机毕设 java 基于 BS 的驾校在线学习考试系统 43i2x9,末尾的数字和英文也要加上 (配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享随着驾考需求的不断增长,传统驾校理…...
零基础快速入门前端DOM核心知识点详解与蓝桥杯Web赛道备考指南(可用于备赛蓝桥杯Web应用开发)
DOM(文档对象模型)是 HTML/XML 文档的编程接口,通过它可动态操作网页内容、结构与样式。本文将结合示例代码,系统讲解 DOM 核心知识点(重点补充事件系统全解),并针对蓝桥杯 Web 应用开发赛道给出…...
PFC颗粒流代码模拟岩石预制裂隙与完整岩石单轴压缩对比分析
PFC颗粒流代码 pfc离散元岩石预制裂隙,裂隙岩石与完整岩石单轴压缩代码,可出各种裂隙形式,可分析应力应变曲线图,裂隙发育与数量,能量变化,简易声发射分析等做岩石单轴压缩离散元模拟的,谁没为…...
Spring Boot 3.2项目实战:5分钟搞定Tomcat虚拟线程配置,让你的接口吞吐量翻倍
Spring Boot 3.2虚拟线程实战:Tomcat配置优化与性能飞跃指南 当你的电商大促接口突然面临每秒上万请求,或者文件上传服务在高并发下响应缓慢时,传统线程池往往成为性能瓶颈。Spring Boot 3.2与Java 21的虚拟线程组合,正在重新定义…...
从Shadertoy到Cesium:那些GLSL移植时没人告诉你的分辨率陷阱
GLSL跨平台移植中的分辨率适配陷阱与实战解决方案 当我们将Shadertoy上令人惊艳的GLSL效果移植到Cesium等三维引擎时,往往会遇到一个看似简单却影响深远的问题——分辨率适配。这个问题不仅关乎视觉效果还原度,更直接影响着色器在不同设备上的表现一致性…...
Anaconda+AKShare保姆级教程:5分钟搞定Python量化环境(附常见报错解决方案)
AnacondaAKShare极速配置指南:零基础搭建Python量化环境全攻略 刚接触量化投资的新手们,往往在第一步——环境搭建上就卡壳了。明明跟着教程一步步操作,却总是遇到各种报错提示,让人望而生畏。本文将手把手带你用Anaconda和AKSha…...
OpenClaw+Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF:学术论文辅助写作系统
OpenClawQwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF:学术论文辅助写作系统 1. 为什么需要AI辅助学术写作 去年冬天,我在赶一篇计算机视觉领域的会议论文时,经历了所有研究者都熟悉的痛苦:连续三天熬夜整理参考文献、…...
科研加速器:GLM-4.7-Flash驱动OpenClaw自动整理文献综述
科研加速器:GLM-4.7-Flash驱动OpenClaw自动整理文献综述 1. 为什么需要自动化文献整理 作为每天需要阅读十几篇论文的科研工作者,我发现自己至少有30%的时间花在了机械性劳动上——下载PDF、重命名文件、提取关键结论、整理参考文献格式。这些工作虽然…...
