Zookeeper-Zookeeper选举源码

看源码方法:

1、先使用:先看官方文档快速掌握框架的基本使用

2、抓主线:找一个demo入手,顺藤摸瓜快速静态看一遍框架的主线源码,画出源码主流程图,切勿一开始就陷入源码的细枝末节,否则会把自己绕晕,凭经验猜

3、画图做笔记:总结框架的一些核心功能点,从这些功能点入手深入到源码的细节,边看源码边画源码走向图,并对关键源码的理解做笔记,把源码里的闪光点都记录下来,后续借鉴到工作项目中,理解能力强的可以直接看静态源码,也可以边看源码边debug源码执行过程,观察一些关键变量的值

4、整合总结:所有功能点的源码都分析完后,回到主流程图再梳理一遍,争取把自己画的所有图都在脑袋里做一个整合

从源码启动zookeeper

zookeeper源码下载地址:

//选择分支3.5.8 https://github.com/apache/zookeeper.git

0

源码导入idea后,org.apache.zookeeper.Version类会报错,需要建一个辅助类

package org.apache.zookeeper.version; public interface Info { int MAJOR = 1; int MINOR = 0; int MICRO = 0; String QUALIFIER = null; int REVISION = -1; String REVISION_HASH = "1"; String BUILD_DATE = "2020-10-15"; }

然后在根目录编译执行:

mvn clean install -DskipTests

开源项目找入口类一般都是从启动脚本去找,可以从bin目录下的zkServer.sh或zkServer.cmd里找到启动主类运行即可

org.apache.zookeeper.server.quorum.QuorumPeerMain

注意:

1、将conf文件夹里的zoo_sample.cfg文件复制一份改名为zoo.cfg,将zoo.cfg文件位置配置到启动参数里

0

2、启动之前需要先将zookeeper-server项目里pom.xml文件里依赖的包(除了jline)的scope为provided这一行全部注释掉

2、将conf文件夹里的log4j.properties文件复制一份到zookeeper-server项目的 \target\classes 目录下,这样项目启动时才会打印日志

用客户端命令连接源码启动的server:

bin/zkCli.sh -server 192.168.50.190:2181

从源码里运行客户端(org.apache.zookeeper.ZooKeeperMain),注意需要加入启动参数,见下图:

0

0

从源码启动zookeeper集群

        复制3个zoo.cfg文件,修改对应集群配置,并在data目录里分别建各自的myid文件填入机器id,并创建三个不同配置的启动节点,见下图:

0

分别运行每个节点,集群启动完毕!

启动或leader宕机选举leader流程

0

leader选举多层队列架构

        整个zookeeper选举底层可以分为选举应用层和消息传输层,应用层有自己的队列统一接收和发送选票,传输层也设计了自己的队列,但是按发送的机器分了队列,避免给每台机器发送消息时相互影响,比如某台机器如果出问题发送不成功则不会影响对正常机器的消息发送。

0

Leader选举源码流程图(务必跟着视频看)

0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/285136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker:部署若依前后端分离版

Docker:部署若依前后端分离版 1. 停止天翼云上的原来跑的若依项目2. 停止腾讯云上的若依项目3. 使用Docker部署3.1 天翼云数据库&Redis3.1.1 部署数据库3.1.2 部署Redis数据库3.1.1 部署Nginx(这里被天翼云坑了换的腾讯云运行nginx) 3.2 腾讯云部署后端&前端…

C#编程-使用条件构造

使用条件构造 作判定是人的基本能力。判定也是可收编进程序。这有助于确定程序执行指令的顺序。 您可用条件构造来控制程序的流程。条件构造允许您基于被求职的表达式的结果来执行选定语句。 可以包含在C#程序中的各种条件构造是: if…else 构造switch…case 构造if…else构…

多线程学习笔记(二)

1 .如何实现子线程先执行,主线程再执行? 启动子线程后,立即调用该线程的join()方法,则主线程必须等待子线程执行完成后再执行。 ​ 扩展阅读 ​ Thread类提供了让一个线程等待另一个线程完成的方法——join()方法。当在某个程序…

71内网安全-域横向网络传输应用层隧道技术

必备知识点; 代理和隧道技术的区别? 代理主要解决的是网络访问问题,隧道是对过滤的绕过, 隧道技术是为了解决什么 解决被防火墙一些设备,ids(入侵检测系统)进行拦截的东西进行突破&#xff0…

大华主动注册协议介绍

一、大华主动注册协议介绍 前面写了一篇文章,介绍一些设备通过大华主动注册协议接入到AS-V1000的文章,很多问我关于大华主动注册协议的相关知识。 由于大华主动注册协议是一种私有协议,通常不对外公开详细的协议规范和技术细节。因此…

UDS诊断(ISO14229-1) 27服务

文章目录 功能简介应用场景安全解锁基本原理请求和响应1、请求2、子功能3、肯定响应4、否定响应 注意报文示例UDS中常用 NRC参考 功能简介 27服务,即 SecurityAccess(安全访问)服务,安全理念采用的是种子与密钥式关系。 应用场景…

VSCode + vite + vue3断点调试配置

没想到这个配置我搞了一上午,网上很多的配置方案都没有效果。总算搞定了,特此记录一下。 首先需要在.vscode文件夹下面创建launch.json配置文件。然后输入如下配置: {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。//…

萨姆·奥尔特曼的预言

Sam Altman(萨姆奥尔特曼)是 OpenAI 的首席执行官,这家初创公司开发了众所周知的 ChatGPT。2023年11月,他突然被董事会解雇,并短暂调往微软。在 OpenAI 的每个人都威胁要辞职后,他又回来了。 新的商业模式…

OpenCV-13绘制多边形和文本

一、画多边形 使用API polylines绘制多边形。 polylines(img, pts, isClose, color, thickness, lineType, shift) 其中: pts:表示多边形的点集&#xff…

Excel报表框架(ExcelReport)极简化解决复杂报表导出问题

Excel Report 耗费了半个月的时间,终于在元旦这三天把报表框架开发完成了,使用该框架你可以非常方便的导出复杂的Excel报表。 项目开源地址: GiteeGithub 前言 不知道各位在使用POI开发报表导出过程中遇到过以下的情况: 频繁…

集成电路模拟设计——【基于Serdes 应用的 串化/解串器 时钟与数据恢复电路CDR】

串化/解串器 & 时钟与数据恢复电路CDR(可提供实现过程、仿真波形与具体参数细节 本文内容摘要背景串化/解串器全速树形串化器半速树形串化器全速移位寄存器串化器多级树形解串器 PLL型CDR整体架构实现结果 Bang-Bang型CDR整体架构 PS/PI型CDR电路PS电路设计PI电…

DDD+SOA的事件驱动微服务读写分离架构

DDD DDD是Eric Evans于2003年出版的书名,同时也是这个架构设计方法名的起源 Eric Evans “领域驱动设计之父”,世界杰出软件建模专家。 他创建了Domain Language公司,致力于帮助公司机构创建与业务紧密相关的软件。 他在世界各地宣讲领域驱动…

排序算法之插入排序c++

介绍 插入排序:将数组分成“已排序”和“未排序”两部分。初始时,已排序的部分 包含一个元素,然后从未排序的部分中取出元素,并在已排序的部分中找 到合适的位置进行插入,并保持已排序的部分一直有序。 重复这个过程&…

计算机网络学习笔记(一)

文章目录 1.1 请介绍七层网络体系结构。2 .请介绍五层网络体系结构。3 .了解网络编程协议吗?客户端发送给服务器的请求,怎么确定具体的协议?4. TCP、HTTP、FTP分别属于哪一层?5. 讲一下TCP/IP协议。6 .说一说你对ARP协议的理解。7…

IDC发布23Q3中国存储市场报告:浪潮信息逆势增长位居前二!

近日,权威调研机构IDC公布《中国企业级外部存储市场跟踪报告,2023Q3》。报告显示,2023年第三季度,中国企业级存储(ESS)市场规模达17.1亿美元,同比下降2.8%。其中,浪潮信息存销售额同比增长10.9%&#xff0c…

论文阅读: Semantics-guided Triplet Loss

ICCV 2021 Abstract 一个度量学习方法,通过浏览语义引导的局部集合去优化内在深度表示。一个新颖的特征融合模块能有效利用跨模态特异质特征。 Senantics-guided Triplet Loss 基本假设: 在场景语义分割图像中,目标内部相邻像素拥有同样…

速通C语言第十二站 文件操作

系列文章目录 速通C语言系列 速通C语言第一站 一篇博客带你初识C语言 http://t.csdn.cn/N57xl 速通C语言第二站 一篇博客带你搞定分支循环 http://t.csdn.cn/Uwn7W 速通C语言第三站 一篇博客带你搞定函数 http://t.csdn.cn/bfrUM 速通C语言第四站 一篇博客带…

FL Studio Producer Edition 21.2.2中文版所有插件版及使用教程

FL Studio 21.2.2中文版惯称水果编曲, 是一个完整的电音软件音乐制作环境或数字音频工作站。是现在流行的数字音频工作站之一,包括撰写,整理,记录,编辑,电音,混音和掌握专业品质的音乐。 FL Studio Producer Edition 21.2.2.3914 所有插件版是一款功能强大的软件音乐制作环境或…

第三十七周周报:文献阅读+掩码、多头注意力机制+位置编码

目录 摘要 Abstract 文献阅读:基于注意力的LSTM大地震预报网络 现有问题 提出方法 基于注意力的LSTM网络 研究实验 实验目的 数据集 评估指标 数据预处理和特征提取 结果讨论 Masked Self-Attention(掩码自注意力) Muti-Head S…

oracle 9i10g编程艺术-读书笔记2

配置Statspack 安装Statspack需要用internal身份登陆,或者拥有SYSDBA(connect / as sysdba)权限的用户登陆。需要在本地安装或者通过telnet登陆到服务器。 select instance_name,host_name,version,startup_time from v$instance;检查数据文件路径及磁盘空间&…