【ZooKeeper】第三章 集群搭建

news2025/1/19 23:20:52

【ZooKeeper】第三章 集群搭建

文章目录

  • 【ZooKeeper】第三章 集群搭建
  • 一、ZooKeeper 集群介绍
    • 1.Leader 选举
    • 2.集群角色
  • 二、搭建 ZooKeeper 集群
    • 1.安装
    • 2.配置集群
    • 3.启动集群
  • 三、故障模拟

一、ZooKeeper 集群介绍

1.Leader 选举

  • Serviceid:服务器 ID
    比如有三台服务器,编号分别是 1、2、3,编号越大在选举算法中的权重越大
  • Zxid:数据 ID
    服务器中存放的最大数据 ID,值越大说明数据越新,在选举算法中的权重越大
  • 在 Leader 选举的过程中,如果某台 ZooKeeper 获得了超过半数的选票,则此 ZooKeeper 就可以成为 Leader

2.集群角色

在 ZooKeeper 集群服务中有三个角色

  • Leader 领导者
    处理事务请求
    集群内部各服务器的调度
  • Follower 跟随者
    处理客户端非事务请求,转发事务请求给 Leader 服务器
    参与 Leader 选举投票
  • Observer 观察者
    处理客户端非事务请求,转发事务请求给 Leader 服务器

在这里插入图片描述

二、搭建 ZooKeeper 集群

1.安装

准备三台服务器,将 ZooKeeper 安装上去,具体安装方法参考【ZooKeeper】第一章 快速入门

2.配置集群

在每台服务器的 ZooKeeper 的 data 目录下创建一个 myid 文件,内容分别是1、2、3,这个文件记录的是每台服务器的 ID

echo 1 >/opt/ZooKeeper/zkdata/myid
echo 2 >/opt/ZooKeeper/zkdata/myid
echo 3 >/opt/ZooKeeper/zkdata/myid

在每一个 ZooKeeper 的 zoo.cfg 中添加集群服务器 IP 列表

#server.服务器ID=服务器IP:服务器之间通信端口:服务器之间投票选举端口
server.1=xxx.xxx.xxx.1:2881:3881
server.2=xxx.xxx.xxx.2:2881:3881
server.3=xxx.xxx.xxx.3:2881:3881

3.启动集群

按照 123 的顺序启动三台服务器

zkServer.sh start

查询服务器 1,跟随者 follwer
在这里插入图片描述

查询服务器 2,领导者 leader
在这里插入图片描述

查询服务器 3,跟随者 follwer
在这里插入图片描述

三、故障模拟

停掉 3 号服务器,1 号和 2 号服务器状态不会变化

再停掉 1 号服务器,2 号服务器停止运行

启动 1 号服务器,2 号服务器开始正常工作,依然是领导者

启动 3 号服务器,停掉 2 号服务器,3 号服务器成为领导者

启动 2 号服务器,3 号服务器依然是领导者,2 号服务器成为跟随者

结论

  • 3 个节点的集群,1 个从服务器宕机,集群正常
  • 3 个节点的集群,2 个从服务器宕机,主服务器无法运行,因为可运行的机器没有超过集群总数的一半
  • 当集群中的主服务器宕机,其他从服务器会自动进行选举,然后产生新的领导者
  • 当领导者产生后,再有新的服务器加入集群,不会进行重新选举,新服务器自动成为跟随者

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享84个NET源码,总有一款适合您

分享84个NET源码,总有一款适合您 链接:https://pan.baidu.com/s/1r7_yrTfQrg-5whL7AYJiLA?pwdeem6 提取码:eem6 import os from time import sleepimport requests from bs4 import BeautifulSoup from docx import Document from docx.sh…

iOS ReplayKit 屏幕共享,屏幕直播实现

使用replayKit iOS12 之后相关 api 完成系统/app 内 屏幕采集直播视频数据, 采用 socket进行进程间Broadcast Unload Extension 向 宿主 app 传输数据, 后台保活持续采集屏幕数据, 摄像头采集, 数据编码解码 编译环境 Xcode14.2, iOS12 系统屏幕数据采集app 内屏幕共享使用so…

FPGA与数字IC求职知识准备 - 数字电路知识总结

前言 本文整理了数字电路课程中的相关基本的知识点和较为重要的知识点,用于求职的数电部分的知识准备,差缺补漏。 二进制数的算术运算 无符号二进制数的算术运算 加法:同十进制加法,逢二进一,无符号二进制数的加法…

Redis源码篇(8)——集群模式

1、集群模式的启动和初始化 当开启了cluster-enabled,在初始化服务initServer方法中会调用clusterInit方法将redis带入cluster模式。 clusterInit void clusterInit(void) {int saveconf 0;//初始化clusterState结构 server.cluster zmalloc(sizeof(clusterSta…

LaTeX代码宏包listings的使用

LaTeX代码宏包listings的使用 文章目录LaTeX代码宏包listings的使用1 需求2 verbatim环境简介3 listings设置代码高亮4 代码样式和颜色5 为listings添加题注6 listings支持的语言格式7 附录 listings样式的自定义参数1 需求 LaTeX\LaTeXLATE​X适合用来进行结构化文档的编辑。如…

[5]. 最长回文子串

[5]. 最长回文子串题目算法设计:双指针算法设计:Manacher 算法题目 传送门:https://leetcode.cn/problems/longest-palindromic-substring/ 算法设计:双指针 检查回文串的通用解决方案是,双指针。 寻找回文串的思…

什么是地理围栏

一、地理围栏算法简介 地理围栏(Geo-fencing)是LBS的一种典型应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。地理围栏更侧重于对区域边界的界定,不再是以某点为圆心向外等距离画圆,而是准确勾勒出小区、写字楼等特…

wpf实现FFmpeg获取摄像头实时画面

gitee地址如下源码地址如何获取摄像头验证码和ip首先获取摄像头底部的验证码及ip(测试使用的是萤石摄像头,需要PC下载萤石客户端查看ip)未连接之前可以通过VLC进行测试在左上角(媒体)--》(流)--》(网络&…

openGauss中Schema赋权小试

目录 概述 1.关于public的权限要点: 2.关于用户同名的schema的权限要点: 3.关于普通schema的权限要点: 概述 下面是openGauss官网对Schema的介绍: Schema又称作模式。通过管理Schema,允许多个用户使用同一数据库而…

MATLAB-二维线性插值运算

二维插值在图像处理和数据可视化方面得到了大量的应用,二维插值的基本原理与一维插值一样,但二维插值是对两个变量进行函数的插值。在MATLAB中,主要使用interp2()函数进行二维插值的实现,其调用格式如下,zi interp2(z,…

Nodejs也能做文本数据处理了,快来看看吧!

随着汉语言的广泛应用,中文信息处理成了一个重要的研究课题,常见于搜索引擎:信息检索、中外文自动翻译、数据挖掘技术、自然语言处理等领域。在处理的过程中,中文分词是最基础的一环。 nodejieba 简介 nodeJieba 是结巴中文分词…

安装thinkphp

[TOC]目录 1. 安装composer 方法:https://www.kancloud.cn/manual/thinkphp6_0/1037481 官网教程中安装composer 2. 配置文件 在命令行中 阿里云: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 华为云&#x…

axios基础学习——通过 Vue + axios 获取接口数据的小demo

文章目录 📋前言 🎯关于axios概要 ❓什么是axios 🧩axios特性 🧩axios浏览器支持情况 🎯axios安装与使用 🧩axios请求方法 🧩axios的使用方法(以get为例子) &am…

[C语言]进一步的来了解指针(多多多图详解)

本文章进一步的来讲解指针,如果是第一次接触指针的可以先看一下对于指针的初步理解 : [C语言]初步的来了解一下指针(多图详解)_HY_PIGIE的博客-CSDN博客 目录 1.字符指针 2.指针数组 2.1指针数组:char*类型举例说明 2…

Thawte旗下通配符SSL证书都有什么区别

Thawte由南非Mark Shuttleworth创立,Thawte SSL证书产品占据了全球SSL数字证书市场的40%,是全球第三大数字证书颁发机构(CA)。随后VeriSign于2000年2月1日以5.75亿美元对Thawte换股完成收购,互相合作&#…

GDI对象泄漏导致程序UI界面绘制异常的问题排查

目录 1、问题说明 2、初步分析 3、查看任务管理器,并使用GDIView工具分析 5、采用历史版本比对法,确定初次出现问题的时间点,并查看前一天的代码修改记录 6、将修改的代码与测试现象结合起来,最终定位问题 7、事后的思考 8…

Simulating Content Consistent Vehicle Datasets with Attribute Descent(略读)

提出了一个大型的3D合成数据集VehicleX。其中各个3D模型都有现实世界的车型对应。整个数据集有1362个id,其中包括11种主流车型。 论文:https://arxiv.org/pdf/1912.08855.pdf 摘要 本文使用图形引擎来模拟带有免费注释的大量训练数据。 在合成数据和真…

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标) 目录 回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)效果分析基本介绍输出结果程序设计学习总结参考资料效果分析

Mars3D Studio平台发布

近日我们基于提供丰富及智能化功能,助力团队做出精美的交互场景的理念,研发了Mars3D Studio平台,于2023年1月10日正式发布上线!欢迎大家访问http://studio.mars3d.cn/ 网站进行体验。一、资源广场团队公开的丰富资源数据&#xff…

LeetCode题目笔记——1658. 将 x 减到 0 的最小操作数

文章目录题目描述题目难度——中等方法一:反向思考,双指针求最长子数组代码/Python代码/C方法二:滑动窗口代码总结我把这篇也归到面试题那一栏,因为觉得这题的思路和思考方式还挺好的,或许能用到其他题上 题目描述 给…