SpringCloud-高级篇(十二)

 

在主从集群中slave节点发生了宕机,不用担心,只要它重启就能从master节点上完成数据的同步,恢复数据,如果宕机的不是slave而是master,是不是master重启就可以呢?如果你做了master节点的数据持久化,如果你重启,数据也不会丢失,但是在master宕机这一段时间,重启数据恢复分过程当中,用户是无法执行写操作的,因为master挂了,整个集群的可用性就下降了,不能做写,只能做读了,这是我们不想看到的,我们要的是整个集群是一直可用的。

我们可以这样做要监控节点的状态,当master宕机后,重新选一个slave节点当做master,这只是一瞬间的事,这个时候整个集群一直是健康的,可以去做读操作,写操作,宕机后的原来主节点,让他当从节点就可以了

(1)Redis哨兵作用和原理

(2)搭建哨兵集群

 

发现他们已经监控主节点7001 

我们测试让7001停止,宕机

从节点会发生变化:报错连接不上

Sentinel会监控做一个选举

每个Sentinel:都会监控主观下线sdowp

到第三个Sentinel监控的时候,已经超多两个:就会标记odown可观下线

Sentinel集群谁最先发现可观下线,会被选为主节点,进行故障恢复进行选举从节点为主节点

可以看到7002选举为了主节点,并执行了命令 不从属任何节点,写入7001配置文件更改从属关系,发送命令7003更改从属关系

7002此时也称为了主节点:

7003也会接收到命名执行:成为7002的从节点,从新做一次全量同步

7001重新启动看7002的日志:发现7001发现在做数据同步

(3)RedisTemplate的哨兵模式

哨兵有一个通知功能,哨兵会对集群做故障转移,master宕机,会做主从节点的切换,主从地址发生了变更,Redis客户端必须知道这些的变化,需要有哨兵通知Redis的客户端发生了故障切换,客户端可以向哨兵获取最新的地址信息

这里配置的不是Redis集群的地址,而是Sentinel的地址,因为在Sentinel的模式下,主从的地址是有可能变更的,不能够把它写死,而是Redis客户端不需要知道Redis集群的具体地址,只需要知道Sentinel的地址就可以了,将来基于Sentinel来做服务的地址发现

mymaste是Sentinel配置文件中maser节点的名称

 通过这些地址java客户端能够通过这些地址找到Sentinel从而得知Redis集群地址

可以在任何的配置类做这个配置,我们可以在启动类做这个配置

上面的匿名内部类,如果一个接口只有一个方法可以用lambda表达式来代替的

启动项目:

执行读操作

主节点信息 :前面我们发生了主节点故障的切换

从节点信息 

建立连接:

上面的Get请求交给7003来查询:

执行写操作:

故障切换我们把7002节点弄宕机:

Sentinel发生选举:切换7001再次为主节点

7001位主节点 

7002让他恢复:从属7001

java客户端会重新尝试连接集群:

得到matser是7001

主从切换自动完成:

从新执行get

找的从节点7002 

Set

找主节点7001

 主从自动切换,读写分离,由客户端自动实现了

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

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

相关文章

GPT火了一年了,你还不懂大语言模型吗?

本文主要介绍大语言的基本原理、以及应用场景和对未来的展望,侧重应用而非技术原理。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:漫谈LLMs带来的AIGC浪潮 🎀CSDN主页 发狂的小花 &#…

【Docker】容器的数据卷

目录 概念及作用 配置数据卷 数据共享 一个容器挂载多个数据卷 概念及作用 Docker容器的数据卷是一种特殊类型的目录,即使容器被删除,存在于宿主机上,可以供一个或多个容器使用。数据卷可以绕过联合文件系统,提供持续存储或共…

6547网文库动态 | 少儿编程考级真题、信息学奥赛、PPT课件等

近期动态:少儿编程题库网上传了2023年12月等级考试真题,主要有GESP真题、电子学会青少年软件编程等级考试真题,少儿编程文库系统主要上传了全国中小学信息技术创新与实践大赛(NOC大赛)真题,信息技术课件&am…

C++CLI——4数组、泛型、集合与属性

CCLI——4数组、泛型、集合与属性 C数组 在c中,数组的大小必须在编译时确定,并且将数组传递给函数时,传递的只是数组起始地址,所以要想办法连同数组大小一同传递给函数。 int arr[4] { 1,2,3,4 }; int arr1[] { 1,2,3,4 }; i…

CodeWave智能开发平台--03--目标:应用创建--07供应商数据表格01

摘要 本文是网易数帆CodeWave智能开发平台系列的第09篇,主要介绍了基于CodeWave平台文档的新手入门进行学习,实现一个完整的应用,本文主要完成07供应商数据表格 CodeWave智能开发平台的09次接触 CodeWave参考资源 网易数帆CodeWave开发者…

相机同步遇到的小问题

出现问题 在进行两个相机显示的时候,出现了相机显示不同步的情况,具体情况如下视频所示: 华睿/大华相机左右相机显示不同步 可以见到视频之中,右相机是比左相机更快一点的,但是有的时候就是同步的。我调用的代码是现成…

基于YOLOv5全系列参数模型【n/s/m/l/x】开发构建道路交通场景下CCTSDB2021交通标识检测识别系统

交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比,中国的交通标志有其独特的特点。卷积神经网络(CNN)在计算机视觉任务中取得了突破性进展,在交通标志分类方面取得了巨大的成功。CCTSDB 数据集是由长沙…

Centos7 静态连接失败解决

在 Linux 下有时候我们需要静态连接,但是静态连接会失败,失败的原因有几种: 1.没有相关的静态库文件 如果是没有相关的静态库文件,那么使用静态连接的话,就是下面的这种效果: 就是显示无法找到 .... 解…

搭建Github Page完全手册

一、前期准备 注册Github账号(必备)下载GitHub Desktop:下载链接(可使用git代替)模板选择网站: jekyllthemes.orggohugomademistakes 二、快速入门 1.模板参考 作者使用的模板来源:https://…

文件批量改名,快速去除文件名中的空格,告别命名烦恼!

在日常工作中,我们经常遇到文件名中带有空格的情况,这不仅导致文件难以查找,还可能在某些软件中引发问题。那么,如何快速、有效地去除这些空格呢?今天,我就来教你一招! 首先,我们要进…

【IEEE会议征稿通知】第五届计算机视觉、图像与深度学习国际学术会议(CVIDL 2024)

第五届计算机视觉、图像与深度学习国际学术会议(CVIDL 2024) 2024 5th International Conference on Computer Vision, Image and Deep Learning 第五届计算机视觉、图像与深度学习国际学术会议(CVIDL 2024)定于2024年4月19-21日…

LeetCode刷题---两数之和

解题思路: 该题使用哈希表的思想解决该问题 首先定义一个Map,key为数组中的每个元素,value为每个元素的索引下标。接着遍历原数组,对每一个元素进行判断,如果哈希表中包含target-nums[i],则将其value和当前…

【JAVA GUI+MYSQL]社团信息管理系统

本社团信息管理系统主要实现登录注册、管理员信息管理、社团用户信息管理、用户申请信息管理功能模块。 目录 1.系统主要功能介绍 2. 数据库概念模型设计 3.具体功能模块的实现 3.1模型类 3.1.1Student.java 3.1.2User .j…

基于ssm的孩童收养信息管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本孩童收养信息管理就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

react-native下载图片到本地相册

需求 点击右上角下载icon,可以将当前图片下载并保存到本地相册。 下载的图片: 流程 下载图片的本质其实是, 固定需要下载的页面内容和样式 》将其放在当前页面不可见区域 》点击下载按钮 》穿一个ref给native,会自动拉起手机系…

SpringBoot怎么写一个自定义的starter,Gradle依赖引入starter的Jar包

1.新建一个Spring的项目myasset-spring-boot-starter 项目结构如下: 注意:不需要Application启动类 和 application.yml/application.properties文件 2. resources下添加spring.factories文件 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfigu…

Zookeeper的基础介绍和安装教程

1、 Zookeeper入门 1.1 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。 1.2 特点 1.3 数据结构 1.4 应用场景 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。 统一…

ros gazebo机械臂仿真,手动控制与MoveIt自动控制

本文总结归纳古月居胡春旭ros机械臂教程,给出了一些error的解决方法,补充了通过python运行moveit。十分建议去看github huchunxu源代码的repository。 创建机械臂的xacro模型 首先创建一个工作空间,在工作空间中创建arm_description功能包。…

GPT如何完成AI绘图?

详情点击链接:GPT如何完成AI绘图? 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二定制自己的GP…