docker高级篇第二章-分布式存储之实战案例:主从容错切换迁移案例

news2024/12/23 20:53:19

在上一篇,学会了3主3从的Redis集群搭建。那么接下来,我们就来学习Redis集群主从容错切换迁移案例

本次案例从模拟两个场景

1:数据读写存储

a:一个新key数据来了,是否会按照预设的进入槽中?集群是否生效

2:容错切换迁移

a:如果master 6381挂了。那么对应的从6384是否会补位?

下面就开始实操。

数据读写存储操作案例

步骤:

1:启动6台机器构成的集群并通过exec进入

 

2:对6381新增两个key

查看当前6381机器上是否存在缓存key:

在上一篇,学会了3主3从的Redis集群搭建。那么接下来,我们就来学习Redis集群主从容错切换迁移案例

发现没有。

好,那么我们就来set k1 v1.

 

发现错误了。错误信息:

(error) MOVED 12706 192.168.50.128:6383

这不对啊。set k v是最简单的命令。这个命令都不支持。那么要集群有什么用?

我们来分析原因:

我们现在使用的是集群的,是有hash槽的。如下图:

 

我们可以看到,master 1 只能管理5461个槽。master2只能管理5462个。master3也是管理5461个槽。

通过之前的学习,我们也知道,集群的时候,是通过把key通过hash值,算出的hash值找到对应具体需要存放在哪个master上的。

通过这些理论知识,我们知道,可能我们set的k1这个key经过hash之后,不在当前master1所管理的0~5460共5461个hash槽中。所以会报错。

那根据这些,我们试试存放其他的呢?

 

我们可以看到,set k2和k3的时候可以的。但是k1和k4是不行的。

我们看看k1和k4的错误:MOVED 12706和MOOVED 8455

感觉这两个数字应该是hash槽。我们可以看到这两个值都大于master1所能管理的最大槽的值。master1最大槽值为:5460.因为我们使用的是redis-clie  -p 6381 这种直连的方式连接的,所以master1存放不了。

3:防止路由 失效,加参数-c 并新增加两个key

如果是集群模式下,我们需要添加一个参数-c。来防止路由失效

 

我们重新set k1 k4试试。

 

可以看到,key路由到对应的master上了。

4:查看集群信息

命令公式:

redis-cli --cluster check ip:端口

 

容错切换迁移

假设master1(6381)宕机了,那么对应的slave4(6384)是否会正常补位。

架构图:

 

步骤:

1:maser1 6381和从机6384切换,先停止主机6381

使用docker stop 容器id/或者容器names

 

停止后,等一会。因为集群之间有心跳检查。所以等待一会。

2:再次查看集群信息

因为6381已经宕机了。那么我们进入6382中,注意以集群的方式进入。需要加参数-c。

 

查看进群情况;

cluster nodes

 

注意看:我们发现集群还是6个。但是6481这特master,是fail了。6381对应的从及6384现在成了master.说明,从机补位了。

这就实现了故障容错切换迁移。

get下k1 k2 k3 k4看看情况:

 

可以正常获取

3:先还原之前的3主3从

 

4:查看集群状态

 

我们可以看到,虽然6381重新启动了。但是6381却成了6384的从节点了。

下一篇预告:下一篇咱们将实操:主从扩容案例

大家好,我是凯哥Java(kaigejava),乐于分享,每日更新技术文章,欢迎大家关注“凯哥Java”,及时了解更多。让我们一起学Java。也欢迎大家有事没事就来和凯哥聊聊~~~

结束语

如操作有问题欢迎去 我的 个人博客(www.kaigejava.com)留言或者   微信公众号(凯哥Java)留言交流哦。

本系列教程直通车

直通车,本系列教程已发布文章,快速到达,《Docker学习系列》教程已经发布的内容如下:

【图文教程】Windows11下安装Docker Desktop

【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

【Docker学习系列】Docker学习1-docker安装

【Docker学习系列】Docker学习2-docker设置镜像加速器

【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?

【Docker学习系列】Docker学习2-常用命令之启动命令和镜像命令

【Docker学习系列】Docker学习系列3:常用命令之容器命令

【Docker学习系列】Docker学习4-常用命令之重要的容器命令

【Docker教程系列】Docker学习5-Docker镜像理解

【Docker教程系列】Docker学习6-Docker镜像commit操作案例

【Docker学习教程系列】7-如何将本地的Docker镜像发布到阿里云

【Docker学习教程系列】8-如何将本地的Docker镜像发布到私服?

「Docker学习系列教程」9-Docker容器数据卷介绍

「Docker学习系列教程」10-Docker容器数据卷案例

Docker学习11-Docker常规方式安装软件

「Docker学习系列教程」基础篇小总结及高级篇预告

docker高级篇1-dockeran安装mysql主从复制

docker高级篇2-分布式存储之三种算法

docker高级篇第二章-分布式存储之实战案例:3主3从redis集群扩容配置

【Docker学习教程系列汇总】笔记及遇到问题解决文章

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

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

相关文章

黄病毒蛋白酶底物,113866-14-1,Boc-GRR-AMC

Boc-GRR-AMC被拟南芥的II型半胱氨酸蛋白酶Atmc4和Atmc9切割。Boc GRR AMC的储备溶液最好在DMSO中制备。 A substrate for flavivirus proteases such as West Nile virus protease, yellow fever virus NS3 protease, and dengue virus NS2B-NS3 protease.Boc-GRR-AMC is cleav…

JSP ssh排放登记管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP ssh 排放登记管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0…

抗疫逆行者网页作业 感动人物HTML网页代码成品 网页作业带JS下拉菜单 最美逆行者网页模板 致敬疫情感动人物网页设计制作

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

洛谷P1319 压缩技术

压缩技术 题目描述 设某汉字由 NNN \times NNN 的 0\texttt 00 和 1\texttt 11 的点阵图案组成。 我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有…

使用go语言开发自动化脚本 - 一键定场、抢购、预约、捡漏

原文地址:码农在新加坡的个人博客 背景 不知道大家有没有这种经历,想要抢课,定场,发现抢不到,想要捡漏,又要随时刷,今天我就来讲一下我是怎么使用Go语言开发自动化脚本来解决定场,抢…

圆梦腾讯之路6面阿里、5面字节、4面腾讯,终斩腾讯Offer

6年前,BAT冲到了风口浪尖,美国上市的阿里成为中国体量最大的互联网公司,腾讯借助微信成为移动互联网的霸主,外企开始撤离中国,国企的光环也慢慢褪去。 到了近年,应届毕业生心中最炙手可热的公司换成了TMD及…

数据结构刷题训练营3

开启蓝桥杯备战计划,每日练习算法一题!!坚持下去,想必下一年的蓝桥杯将会有你!!笔者是在力扣上面进行的刷题!!由于是第一次刷题!找到的题目也不咋样!所以&…

[附源码]计算机毕业设计Python工程施工多层级管理架构(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

逃离美国,跨越8000公里远程办公,他开发了世界上最强的虚拟机

“从前”有一门编程语言叫Smalltalk,它是世界上第一个纯粹的面向对象编程语言。 Smalltalk有很多忠实拥趸,在Java崛起之前,它独自可以抗衡C。 著名的《设计模式》一书,其中的代码示例就是C和Smalltalk。 但是Smalltalk运行速度太慢…

缓存架构,减少不必要的计算

前言: 互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算的资源,应对高…

VUE3-创建项目《一》

本案例使用vue3进行学习记录,和vue2有些是通用的。 1.需要了解HTML,CSS,JavaScript。 2.了解Node和NPM,node是vue的开发环境,npm是依赖管理包,npm就和Java的maven一样,和c#的NuGet一样&#x…

mac 微信备份到外接硬盘方案(软链接)

mac版本微信中并没有指定备份路径的功能,备份的聊天记录文件也在一个很难找的位置。对于使用256g硬盘的mac的用户,微信聊天记录动辄十几G、几十G的大小,会造成非常严重的硬盘容量恐慌。所以把微信备份文件迁移到外置硬盘是一件非常有意义的工…

实景三维数据汇交、接缝处理难?用网格大师轻松搞定!

为满足全国城市化、智慧化建设发展,实景三维建设进程加快,建设成果日渐增多,随之而来的数据汇交需求增大。然而在实际数据汇交过程中,不仅需要考虑到模型能否直接融合与替换的问题,还将面临几何接缝、色彩不均等问题。…

【DELM回归预测】基于matlab人工蜂群算法改进深度学习极限学习机数据回归预测【含Matlab源码 1885期】

⛄一、PSO-DELM简介 1 DELM的原理 在2004年,极限学习机(extreme learning machine,ELM)理论被南洋理工大学的黄广斌教授提出,ELM是一种单隐含层前馈神经网络(single-hidden layer feedforward neural network,SLFN&am…

虹科新闻 | 虹科与RACOM正式建立合作伙伴关系

近日,虹科与RACOM正式建立合作伙伴关系,双方就工业应用自动化领域进行深入的交流与合作,未来将共同致力于为客户提供高效、可靠的工业通信解决方案,帮助客户布局工业信息系统。 虹科与RACOM都表示十分期待这次的合作。虹科CEO陈秋…

【信管4.3】确认与控制范围

确认与控制范围在范围管理中,我们已经讲完了 4 个管理过程,剩下的两个过程就是对范围的确认以及在整个项目执行过程中进行范围的监控管理。这两个过程的内容都不多,所以今天的内容还是非常轻松的,在正式学习之前,我们先…

再学C语言9:数据类型(7)——总结

一、sizeof()函数检测C环境中数据类型大小 代码&#xff1a; #include <stdio.h> int main(void) {printf("Type int has a size of %u bytes.\n", sizeof(int));printf("Type char has a size of %u bytes.\n", sizeof(char));printf("Type …

技术分享 | Jenkins 多任务关联

当有多个 Jenkins job 时&#xff0c;job 的执行需要按照先后顺序去执行&#xff0c;这个过程就是 Jenkins 的多任务关联。通常用于项目的编译、打包、执行冒烟、执行项目 case 多任务协助的场景中。 > 霍格沃兹测试学院 TestingStudio 触发条件 多任务关联的使用场景是有…

【大数据 clickhouse】clickhouse 数据字典使用详解

一、数据字典介绍 数据字典是ClickHouse提供一种非常简单且实用的存储媒介&#xff0c;他以键值和属性映射的形式定义数据。字典中的数据会主动或被动加载到内存并支持动态更新。由于字典数据常驻内存的特性&#xff0c;所以非常适合保存常量或经常使用的维度表数据&#xff0c…

没想到H5也是黑灰产的攻击重点?

近几年&#xff0c;在数字化与疫情的推动下&#xff0c;越来越多的企业开辟了线上业务&#xff0c;在互联网上通过各种方式开展业务。线上业务不仅使得企业效率提升&#xff0c;同时也面临着被黑灰产攻击的风险。黑灰产通过各种业务漏洞&#xff0c;能够攫取大量利益&#xff0…