云 cloud 高可用系统--在RDS上实现,从原理上不可能保证你100%不丢数据

news2024/11/23 11:19:09

e5454415c740b25d3ba5ee87ea472d69.png

我写这篇文字,实属无奈,在目前很多企业都依赖云的情况下,数据库的很多事情都是身不由己,发生问题,你查看日志,分析日志可能你连日志都不是全部的,并且想通过程序来过滤这个日志很多情况下都有限制或根本不行。这些都是其次,今天要说的是 云的 RDS 产品的高可用的问题,无法信任。

首先还是要说两句,1  这个帖子不会说是那个云,读者你也不要问是那个云, 2 丢数,我个人认为在云上这是必然的,不是偶然,只是触发概率的问题。(原因很清楚,我说的这个问题,到那个云都一样,越先进的越会有这个问题)

需要注明的是,云上RDS 系统的高可用,和咱们实体机的高可用不是一个概念,形成的方式也不一样,我们先熟悉一下云上RDS 产品的形成方式,主要RDS 有两种  

1  通用性产品,产品本身主要的共享部分是CPU ,实际上就是你花钱买的4 核心的CPU 在某个时间段是你的,而在另一个时间段是别人的,所以如果有的别人在拼命的用这些CPU ,那么你的任务很可能会等待,等空余出4 CORE CPU 才能给你进行运算。

2   独享性产品  独享的产品本身与共享型产品的核心不同就是CPU ,CPU是自己独有的所以相关的价格也必然比通用性的要高。

1a7582fb5976a260060a4c7699364cfe.png

当然这个和我说的这个问题么有太大的关系,我们来说说 RDS OF  MYSQL 的在某云的高可用方式。画一个大致的图。在云内,每个部分都是由不同的部门进行负责的,而高可用这个部分,他就不属于mysql rds or  postgresql rds 他是一个独立的部门或组,也就是和美国三权分立一样,各管各的,这就导致一个问题,如何判断数据库死掉了。

642972615831bf322469befe2400a775.png

传统的数据库中我们判断数据库的服务是否在,有很多方法,如PING 法,访问数据库法, 或者判断服务运行法,等等,同时辅助与多个点来进行判断。 一般来说出现问题后,不会出现太多误报的问题。

而云上不是,云上的节点众多,而判断节点的高可用程序和数据库必然不在一个层面中,具体是不是在一个网段中,我不知道,但是如果在一个网段,则这个高可用的部署成本会很高。假设他不在一个网段,则网络的问题必然会导致误判节点DOWN机。同时判断一个数据库服务是否存在,在云上的数据库也只能弄一个大概,太敏感了,容易切换,导致用户不满意, 而不敏感不切换,长时间数据库无法响应,客户还是不满意,实际上在线下的问题,不会因为你的数据库迁移到了线上,这个问题就解决了,从成本的角度考虑,不会有技术上的提高,所以失败的概率必然是有的。

下面我来说说我们遇到的问题:还的用一个图来进行描述

在说此事之前需要注明---此文不针对任何一个云,同时此文仅仅是在技术上和实例上的讨论,云上是否可以做到无主从切换后带来的数据损失,实际上是可以的,但成本太高,大部分应用是无法承受相关的成本。

我们发生问题的整体过程这里描述一下,MYSQL RDS 一台,在凌晨进行数据的删除,因为开发处理的语句粗糙,并未进行事务大小的评估,导致产生了一个大事务,大事务中,产生了大量的BINLOG ,BINLOG 将整体的磁盘空间挤满,数据库没有磁盘空间在去写数据,数据库HANG住,此时高可用程序对数据库开始判断是否工作,发现无法登陆和操作数据库,或判断数据库无法正常提供服务的情况下,开始计时 600秒,数据库一直HANG住,主从产生切换。

e3f1cc9ebf68b92ab5228717dd54ce1a.png

9f9906f61ec7a3ae0398a49e6a32950c.png

d7241cdcbd8f70af6f04b8eef0227fe4.png

6559b937da05c6389fb84cbe854d1760.png

实际上这个问题很容易解释清楚

1   从上图中的 RELAY LOG  BINLOG  等日志的在切换前和切换后的容量的大小上可以进行判断。

2  在切换时,需要做出牺牲,是等着BINLOG 都传输完毕,还是让系统尽快进行恢复,需要系统做出一个选择

3  切换过程中,如果原主库就是无法唤起,那么从库必然在缺少数据的情况下,成为主库,所以数据COMMIT 但未在从库应用,从库又缺少BINLOG,所以导致在应用端有COMMIT 成功的反馈,但是数据没有。

所以云数据库不是万能的良药,云数据库只是将一些高概率发生的问题在云端进行解决,但是解决的方式粗狂,并且成本高,不是针对任何企业都能接受这个事情,这才有了金融级的数据库产品,金融级别的产品在这个方面,原则上是 100%不能发生数据丢失的问题。

另外在云端除了  MYSQL RDS 产品可能会在突发情况下丢数据,PG 会不会,PG 可以不会丢数据,因为PG 有强制数据同步到从库后ACK ,但是你可以去看看主流云在 PG 方面的设定,有没有使用这个部分,使用了你的性能会降低多少。所以在不使用这个部分,PG 高可用在云上丢数据那是太正常了

我们在某云上做的相关测试,如果我们开启这个参数,在某云的性能直接 CUT OFF  50% ,对没有错误,性能损失 50%。

而MOGNODB 在某云也有问题,按照MONGODB 的本身设定,这个数据库算是数据库里面高可用做的最好的,没有一直,他就是这个LEVEL 里面的高可用做的最好,最妙,最无法丢数据的存在,但是在某云由于成本的原因,也造成这个产品,有可能在特殊的情况下,丢数据或导致业务DOWN机,虽然这个概率触发的可能性不大,但是也要看实际的情况,这里就不细说了,以免 某云 变成一个 标定的名词。

最后重申,不要在问这是哪个云,我可以负责的说,如果这云不行,那么基本上你哪个云都没戏,只是你没发现而已。同时不要责怪云上的技术人员,他们没有错误,错误的是云的成本要求和一些云上在硬件上的,和架构上的对他们的限制,云上也有金融级的数据库,不过你看完价格你在想想。

最后,如何进来避免云上丢数据

1  控制好你的事务大小,开发人员使用云数据库的肆无忌惮,导致在云上发生大事务的可能性更高,尤其在某些不负责的人士下的,互吹乱捧下。

2  在云上的数据库本身不要太大,很多云上的MYSQL 数据库在 1T 以上,POSTGRESQL 在 3T 以上 等等,这让云进行切换或者进行数据恢复的时候,困难度很大,因为云不是一个万能的避风港,你在线下的问题,不会上云后消失,只不过,多了一个背锅侠,并且这个背锅侠还是不负责的。具体原因和信息 参见   云SLA是不是安慰剂 ?这篇文章

3  对于云上的空间管理,不要算计的太厉害,有一定的RDS 产品的冗余空间在一些大事务滥用或者 BINLOG  WAL OPLOG 猛增的时候能抗一下,避免因为磁盘空间导致的切换。

6419386b7ca8aa6a43e3e10a92cd7213.png

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

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

相关文章

数据库系统概述——第六章 关系数据理论(知识点复习+练习题)

🌟博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏&am…

CMU 15-445 Project #2 - B+Tree(CHECKPOINT #1)

CHECKPOINT #1 一、题目链接二、准备工作三、部分实现1.查找操作2.插入操作3.删除操作 四、评测结果 一、题目链接 二、准备工作 见 CMU 15-445 Project #0 - C Primer 中的准备工作。 三、部分实现 对于B树的节点定义,通过节点类的命名 b_plus_tree_page 不难发现…

linux-centos7操作系统查看系统未挂载的磁盘,挂载磁盘

linux-centos7操作系统查看系统未挂载的磁盘,挂载磁盘 查看当前磁盘空间 根目录 / 下也只有44G,其他目录只有10几G,正式环境肯定不够用 df -h查看硬盘数量和分区情况 fdisk -l查看到/dev/vdb 有500多G了 将/dev/vdb在分出一个区使用 第一步:编辑分区。执行命令fdisk …

pr视频叠加,即原视频右上角添加另外一个视频方法,以及pr导出视频步骤

一、pr视频叠加,即原视频右上角添加另外一个视频方法 在使用pr制作视频时,我们希望在原视频的左上角或右上角同步播放另外一个视频,如下图所示: 具体方法为: 1、导入原视频,第一个放在v1位置,第…

Selenium编写自动化用例的8种技巧

在开始自动化时,您可能会遇到各种可能包含在自动化代码中的方法,技术,框架和工具。有时,与提供更好的灵活性或解决问题的更好方法相比,这种多功能性导致代码更加复杂。在编写自动化代码时,重要的是我们能够…

【序列dp】最长上升子序列(一)

文章目录 最长上升子序列-序列dp概览895 最长上升子序列-O(n^2)1017 怪盗基德的滑翔翼1014 登山482 合唱队形1012 友好城市 最长上升子序列-序列dp 什么是序列相关的 DP ?序列相关 DP,顾名思义,就是将动态规划算法用于数组或者字符串上&…

textgen教程(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 官方GitHub项目:shibing624/textgen: TextGen: Implementation of Text Generation models, include LLaMA, BLOOM, GPT2, BART, T5, SongNet and so on. 文本生成模型,实现了包括LLaMA,ChatGLM,B…

C++课程学习记录

目录 1. 前置说明2. 二叉树的模拟2.1 参考资料2.2 二叉树的构建2.2.1 递归构建2.2.2 迭代构建 2.3 二叉树的遍历2.4 二叉树的应用 3. 继承与派生3.1 最简单的生死3.2 动态申请空间的生死3.3 继承中的protectd权限3.4 三种继承方式3.5 修改某些继承成员的继承类型3.6 多级派生3.…

C++57个入门知识点_番外1_C++指针偏移在类中的应用及指针偏移原理

这是对C指针偏移介绍比较好的博文,但是比较分散,我把其进行了整理,原博文地址请见最后,讲的很详细。 C57个入门知识点_番外1_C指针偏移在类中的应用及指针偏移原理 1. C指针偏移原理2. C显示十进制内存地址(不用理解&…

AQS原理

目录 一、原理概述二、AQS 对资源的共享方式三、AQS底层使用了模板方法模式四、使用demo,使用AQS实现不可重入锁五、AQS使用到的几个框架 一、原理概述 AQS全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架 AQS核心思想是&#…

Appian低代码平台

国外老牌低代码开发平台Appian Appian在国内用的比较少,资料也很匮乏。需要自己主动去官网寻找。 Appian 学习平台 进入Appian Community可以选择学习路径,可以选择适合自己的学习路径;我选择的是Builder路径, 看了足足80个小…

opencv检测二维码和条形码

文章目录 1 excel制作简单二维码2 识别二维码和条形码2.1 相关库2.2 decode解码2.3 圈出二维码的位置2.4 判断二维码是否授权 3 完整代码3.1 使用图片进行识别3.2 使用摄像头实时识别 4 总结 1 excel制作简单二维码 使用excel可以实现制作二维码,但只能实现做英文和…

基于51单片机的简易电子琴设计

目录 摘 要 基于51单片机的简易电子琴设计 一、系统设计 1、项目概要 2.设计任务和基本要求 二、硬件设计 1、硬件设计概要 2、时钟振荡电路模块 3.复位电路模块 5.数码管电路模块 6.蜂鸣器模块 7、乐曲切换电路模块 三、软件原理 四、软件流程图 五、代码实现 …

解析Transformer基本结构与实现

1.基本结构 ​ Transformer总体架构可分为4个部分: 输入部分-输出部分-编码器部分-解码器部分 输入部分包含: 原文本嵌入层(Input embedding)及其位置编码(position encoding)目标文本嵌入层及其位置编码器 文本嵌入层的作…

TCP/UDP协议重温三次握手四次挥手 简单笔记

术语储备: SYN:同步位 ;SYN1,表示进行一个连接请求 ACK:确认位 ;ACK1,确认有效 ACK0,确认无效 ack : 确认号 ;对方发送序号1 seq : 序号 ; 标识从TCP发端向TCP收端发送的数据字节流 …

基于JPA的Repository使用详解

Spring Data JPA Spring Data是Spring提供的操作数据的框架,Spring Data JPA是Spring Data的一个模块,通过Spring data 基于jpa标准操作数据的模块。 Spring Data的核心能力,就是基于JPA操作数据,并且可以简化操作持久层的代码。…

BLOND:ISH VoxEdit 创作大赛来啦!

准备好随着 BLOND:ISH 的节拍释放你们的创造力和节奏,因为我们将举办一场与众不同的刺激比赛。你们可以在 BLOND:ISH VoxEdit 大赛中展示你们的才华并赢得 SAND 奖励! 🏝️ 比赛主题:ABRA 夏日派对 🏝️ 释放你们的想象…

【Python学习】—Python基础语法(二)

文章目录 【Python学习】—Python基础语法(二)一、字面量二、注释三、变量四、数据类型五、数据类型转换六、标识符七、运算符八、字符串扩展九、获取键盘输入 【Python学习】—Python基础语法(二) 一、字面量 字面量&#xff1…

文件类型识别的实现思路

一些网络设备,比如防火墙或者审计系统,一般都有文件过滤的功能,可以对用户上网传输的文件进行过滤,比如可以限制用户通过ftp下载word文档,也就是文件类型为doc或者docx的文件。 那么文件过滤的功能是怎么实现呢&#…

2023年计算机专业还值得无脑梭哈吗——计算机类专业在读一年学生个人分享

长忆观潮,满郭人争江上望。来疑沧海尽成空,万面鼓声中。 弄潮儿向涛头立,手把红旗旗不湿。别来几向梦中看,梦觉尚心寒。 IT 界每隔几年就有一波浪潮或者泡沫,新的一波大潮已经打过来了,躲?能跑多…