当前位置: 首页 > news >正文

系列3-常见的高可用MySQL解决方案

高可用主要解决两个问题,如何实现数据共享和同步数据、如何处理failover,数据共享的解决方案一般是SAN,数据同步通过rsync和drbd技术来实现。

1、主从复制解决方案

这是MySQL自身的高可用解决方案,数据同步方法采用的是MySQL replication技术。是一个日志的复制过程,复制过程中,一个服务器当作主服务器,1个或多个其他服务器充当从服务器。从服务器从主服务器拉取二进制文件,将日志文件解析成sql语句在从服务器上重新执行一遍主服务器的操作,通过这个方式可以保证数据的一致性。
MySQL replication 仅提供了日志同步执行功能,而从服务器只能提供读操作,主服务器故障时,比须通过手动来处理failover,将一台从服务器改成主服务器。

2、Heartbeat/SAN、DRBD高可用解决方案

借助第三方软硬件实现,通过SAN存储共享数据,正常情况下,集群主节点将挂载存储进行数据读写,当集群发生故障时,heartbeat首先通过一个冲裁设备将主节点挂载的存储设备释放,然后在备用节点上挂载存储 ,接着启动服务,通过这种方式可以实现数据共享和数据同步。
在数据共享方面,还可以采用基于块级别的数据同步软件DRBD来实现。DRBD即Distributed Replicated Block Device,是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。这种方案实现起来稍微复杂,同时也存在脑裂的问题。可以实现99.900%的SLA。
在这里插入图片描述

3、PXC集群解决方案

  • Percona XtraDB Cluster提供的特性有
    同步复制,事务要么在所有节点提交要么不提交
    多主复制,可以在任意节点进行写操作
    在从服务器上并行应用事件,真正意义上的并行复制
    节点自动配置
    数据一致性,不再是异步复制
  • 优点:
    执行查询在本地节点执行,所有数据都在本地,无需远程
    无需集中管理,可以在任何时间失去任何节点,集群正常工作
    良好的读负载扩展,任意节点都可以查询
  • 缺点
    加入新节点,开销大
    不能有效的解决写缩放问题
    有多少节点就有多少重复数据
    节点之间的复制仅支持InnoDB引擎
    所有表都有主键,锁冲突,死锁问题相对较多。
    分布式系统的CAP理论。
    C—一致性,所有节点的数据一致。
    A—可用性,一个或多个节点失效,不影响服务请求。
    P—分区容忍性,节点间的连接失效,仍然可以处理请求。
    MySQL Replication: 可用性和分区容忍性
    Percona XtraDB Cluster: 一致性和可用性
    因此MySQL Replication并不保证数据的一致性,而Percona XtraDB Cluster提供数据一致性。

4、MHA高可用解决方案

  • MHA优势如下:
    故障切换快
    master故障不会导致数据不一致
    无需修改当前的MySQL设置
    无性能下降
    适用于任何存储引擎

相关文章:

系列3-常见的高可用MySQL解决方案

高可用主要解决两个问题,如何实现数据共享和同步数据、如何处理failover,数据共享的解决方案一般是SAN,数据同步通过rsync和drbd技术来实现。 1、主从复制解决方案 这是MySQL自身的高可用解决方案,数据同步方法采用的是MySQL rep…...

C#登录后携带cookie爬取数据

前一段时间,公司以前的一个数据采集任务突然之间采集下来的数据都是0了,也就是未登录状态能够获取到的数据,于是猜想肯定是网站的服务升级了,升级了数据接口的逻辑,于是便开始解决此问题。 此采集程序是由.net core开…...

自动驾驶国家新一代人工智能开放创新平台产业化应用

【摘要】:当前,全球新一轮科技革命和产业变革正孕育兴起,自动驾驶作为人工智能最重要的应用载体之一,对于加快交通强国、智能汽车强国建设,具有十分突出的战略意义。我国自动驾驶研发应用,面临技术、资金、应用等诸多挑战,为此,需要打造一套符合我国国情的自动驾驶系统…...

Maven分模块-继承-聚合-私服的高级用法

Maven分模块-继承-聚合-私服的高级用法 JavaWeb知识,介绍Maven的高级用法!!! 文章目录 Maven分模块-继承-聚合-私服的高级用法1. 分模块设计与开发1.1 介绍1.2 实践1.2.1 分析1.2.2 实现 1.3 总结 2. 继承与聚合2.1 继承2.1.1 继承…...

Spring 是如何解决循环依赖问题的?

项目场景: 提示:这里简述项目相关背景: 例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大) 问题描述 我们都知道,如果在代码中,将两个…...

Spring-2-深入理解Spring 注解依赖注入(DI):简化Java应用程序开发

今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】 问题导入 思考:如何使用注解方式将Bean对象注入到类中 1.1 使用Autowired注解开启自动装配模式(按类型) Service public class StudentS…...

java 强密码验证策略工具类

java 强密码验证策略工具类 package com.neusoft.caeid.common.utils;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** author dume*/ public class PasswordUtil {public static final String REGEX "^\\S*(?\\S{6,})(?\\S*\\d)(?\\S*[a-zA-Z…...

CI/CD—K8S 基本理解与部署

1 K8S 是什么 Kubernetes 是一款容器的编排调度工具,来源于 Google 开源的 Brog 系统。Kubernetes简称K8S,是用8代替8个字符 “ubernete” 而成的缩写,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化…...

2023网络安全常用工具汇总(附学习资料+工具安装包)

几十年来,攻击方、白帽和安全从业者的工具不断演进,成为网络安全长河中最具技术特色的灯塔,并在一定程度上左右着网络安全产业发展和演进的方向,成为不可或缺的关键要素之一。 话不多说,网络安全10款常用工具如下 1、…...

OpenStack监控工具

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权。 OpenStack为私有云和公有云提供可扩展的弹性的云计算…...

讲解密码学综合应用

密码学综合应用是指将密码学的理论和技术应用于各种场景中,以保障信息的安全性、完整性和可靠性。密码学的应用范围非常广泛,包括通信安全、网络安全、电子商务、数字签名、认证、密钥管理等。下面将简要介绍一些密码学综合应用的实例: 1. 加…...

Flamingo

基于已有的图像模型和文本模型构建多模态模型。输入是图像、视频和文本,输出是文本。 Vision encoder来自预训练的NormalizerFree ResNet (NFNet),之后经过图文对比损失学习。图片经过图像模型的输出是2D grid,视频按1FPS的频率采样后经过图…...

Leetcode-每日一题【剑指 Offer 12. 矩阵中的路径】

题目 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如,在下面的 34 的矩阵中包含单词 "ABCCED"(单词中的字母…...

安全渗透知识总结二

目录 一、html实体编码 1、Unicode字符编码 2、字符的数字表示 3、常见实体编码 4、url 协议 主机 http状态码 http常用的状态码 端口 常见协议端口 查询参数 锚点 url字符 urlcode字符 绝对url和相对url 二、字符编码 Ascll字符集 html字符集 html的url编码 …...

【线程】wait()+notifyAll()实现多个线程交替遍历,输出ABCABC

背景 有三个线程,每个线程分别循环输出A、B、C,各线程循环10次,要求输出结果是ABCABCABC这样的 代码 Data public class PrintThread extends Thread {private String string; // 输出的字符串private int order; …...

MyBatis 缓存机制复习及项目中的应用经历

背景 想起前两年工作中因为二级缓存默认开启导致的问题,完整的看了一个介绍 MyBatis 缓存机制的视频《MyBatis 缓存基础知识讲解》。 总计知识点: 缓存的类型及开关这是个形同虚设的功能,线上环境应该禁用缓存 MyBatis 缓存分类 MyBasit…...

匈牙利算法详解

匈牙利算法(Hungarian Algorithm)是一种组合优化算法(combinatorial optimization algorithm),用于求解指派问题(assignment problem),算法时间复杂度为O(N^3)。Harold Kuhn发表于1955年,由于该算法基于两位匈牙利数学家的早期研究成果&#…...

script的三种加载模式

默认加载:阻断dom树构建(html文档解析),下载资源,然后立即执行,完毕后再进行dom树构建defer 加载:下载照旧,但执行延后。即下载资源和dom构建同时进行,但等dom树构建完再执行async:下…...

mongo 中两张表联合查询

表1:user 表 表2:dept表 需要查询user表中roleCodes 包含shr 的数据 然后联合dept表 需要部门名称 db.user.aggregate([{$match: {roleCodes: "shr" // 匹配roleCodes包含"shr"的文档}},{$lookup: {from: "dept", // 关联的集合名称loc…...

【Linux】多路转接 -- epoll

文章目录 1. 认识epoll2. epoll相关系统调用接口3. epoll工作原理4. epoll服务器5. epoll的优点6. epoll的工作方式7. epoll的使用场景 1. 认识epoll epoll系统调用和select以及poll是一样的,都是可以让我们的程序同时监视多个文件描述符上的事件是否就绪。 epoll…...

学会RabbitMQ的延迟队列,提高消息处理效率

系列文章目录 手把手教你,本地RabbitMQ服务搭建(windows) 消息队列选型——为什么选择RabbitMQ RabbitMQ灵活运用,怎么理解五种消息模型 RabbitMQ 能保证消息可靠性吗 推或拉? RabbitMQ 消费模式该如何选择 死信是什么…...

ChatGPT会取代搜索引擎吗?BingChat、GoogleBard与ChatGPT区别

目前暂时不会,ChatGPT为代表的聊天机器人很可能会直接集成到搜索中,而不是取代它。微软已经通过Bing Chat和Bing做到了这一点,它将“聊天”选项卡直接放入Bing搜索的菜单中。Google、百度也分别开始尝试通过其AI生成技术将Google Bard、文心一…...

多个QLabel中文字左右对其问题研究

众所周知,关于QLabel 中的文字对其方式,官方提供多种,具体可参考 AlignmentFlag,这里就不详细列举了。 实际开发中有这样一个需求:多个lab中,文字显示不同,长度不一,但想要实现视觉…...

链式二叉树统计结点个数的方法和bug

方法一: 分治:分而治之 int BTreeSize1(BTNode* root) {if (root NULL) return 0;else return BTreeSize(root->left)BTreeSize(root->right)1; } 方法二: 遍历计数:设置一个计数器,对二叉树正常访问&#…...

C语言-报错集锦-03-malloc(): memory corruption: 0x0000000001496d90 ***

一、报错信息 [2023-8]--[ Debug ]--Push Data To StAccessPath OK. [2023-8]--[ Debug ]--Judge Vertex(0) Is Not Accessed. [2023-8]--[ Debug ]--Judge Vertex(2) Is Accessed. [2023-8]--[ Debug ]--Judge Vertex(3) Is Not Accessed. [2023-8]--[ Debug ]--Judge Vertex…...

现代C++中的从头开始深度学习:【5/8】卷积

一、说明 在上一个故事中,我们介绍了机器学习的一些最相关的编码方面,例如 functional 规划、矢量化和线性代数规划。 现在,让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…...

以太网帧格式与吞吐量计算

以太网帧结构 帧大小的定义 以太网单个最大帧 6(目的MAC地址) 6(源MAC地址) 2(帧类型) 1500{IP数据包[IP头(20)DATA(1480)]} 4(CRC校验&#xff…...

vue中install方法

1:语法 vue提供install可供我们开发新的插件及全局注册组件等 install方法第一个参数是vue的构造器,第二个参数是可选的选项对象 export default {install(Vue,option){组件指令混入挂载vue原型} }2:注册组件 一:注册单个组件 1…...

Flutter:文件读取—— video_player、chewie、image_picker、file_picker

前言 简单学习一下几个比较好用的文件读取库 video_player 简介 用于视频播放 官方文档 https://pub-web.flutter-io.cn/packages/video_player 安装 flutter pub add video_player加载网络视频 class _MyHomePageState extends State<MyHomePage> {// 控制器late…...

vim的使用

vim文本编辑器 vim介绍命令模式光标移动选中内容复制内容粘贴内容删除撤销/恢复字符转换 编辑模式末行模式保存/退出查找行号显示文件切换 扩展 vim介绍 vim是Linux自带的文本编辑器&#xff0c;具有命令模式、编辑模式、末行模式三种模式。 模式间的切换&#xff1a; 命令模…...

生鲜配送网站建设/长治seo顾问

什么是计算机元年&#xff1f; 上古时期的计算机操作系统是32位&#xff0c;一个int类型的数据是32位&#xff0c;它表示的范围是&#xff1a;-2147483648 ~ 2147483647&#xff0c;用它来代表秒钟数进行计算&#xff1a;2147483647/(3652460*60)68.1(年) 也就是说用这个数来表…...

秦皇岛企业建网站/山东seo推广公司

Linux文件编辑器 概述 vi和vim vi:所有的类unix(unix-like)都有内置vi编辑器,很多软件的编辑接口会主动调用vi vim:具备程序编程的能力,主动以字体颜色辨别语法的正确性,方便程序设计,程序简单,编辑速度快。 vi的使用 vi分为三种工作模式:命令模式、输入模式、末行模…...

.net最新网站开发/无锡营销型网站建设

前言 是不是有很多小伙伴在做接口自动化的时候&#xff0c;大量的测试用例数据&#xff0c;写的即枯燥&#xff0c;有乏味呢&#xff1f; 那么下面你们的福利来啦~本文章会基于 mitmproxy python 做代理拦截&#xff0c;将我们拦截到的接口请求&#xff0c;转换成 .yaml 格式…...

wordpress本地访问满/网络营销推广方式

1.driver(text"书城")#定位元素的方式--属性定位 2.driver(text"书城").click()#点击元素 3.driver(resourceId"####").click()#点击搜素按钮 4.driver(resourceId"####").send_keys("内容")在搜索输入框中输入 5.driver…...

wordpress 文档在线浏览/福州seo建站

远程服务调用在实际的项目中很常用&#xff0c;在多重方式中&#xff0c;HTTP应该算是比较常用的&#xff0c;对客户端来说也很方便 但是spring http invoker只支持JAVA语言&#xff0c;结构简单&#xff0c;只依赖与spring框架本身。 首先我们来看服务端&#xff08;依赖于W…...

政务网站集约化建设/广州seo推荐

2019独角兽企业重金招聘Python工程师标准>>> 在前面随笔&#xff0c;我介绍了整个ABP优化过框架的分层模型&#xff0c;包括尽量简化整个ABP框架的各个层的关系&#xff0c;以及纳入一些基类的辅助处理&#xff0c;使得我们对应业务分层类或者接口尽可能减少代码&am…...